加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_新乡站长网 (https://www.0373zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

实现wordpress的ajax接口请求学会admin-ajax.php的利用

发布时间:2022-10-31 12:48:52 所属栏目:PHP教程 来源:
导读:  摘要:wordpress无刷新登录,想通过ajax读取用户提交的表单,结果被wp-login.php拒绝了php交互,一开始一直在想解决...

  wordpress无刷新登录,想通过ajax读取用户提交的表单,结果被wp-login.php拒绝了,
  摘要:wordpress无刷新登录,想通过ajax读取用户提交的表单,结果被wp-login.php拒绝了php交互,一开始一直在想解决...
 
  wordpress无刷新登录,想通过ajax读取用户提交的表单,结果被wp-login.php拒绝了,一开始一直在想解决权限的问题,但是总是会去修改wp-login.php,后面找到了admin-ajax.php。
 
  在wordpress上实现ajax,可以通过前端代码后/wp-admin/admin-ajax.php进行交互。
 
  1.在php代码中的得到其地址:
 
  $admin_url=admin_url( ‘admin-ajax.php’ )
 
  2.ajax的调用地址:域名/wp-admin/admin-ajax.php?action=***(get方式)
 
  3.设计action处理函数,假设为dosome
 
  function dosome(){
 
  $data = array(
 
  ‘info’=>’this is my test’,
 
  ‘success’ => true,
 
  );
 
  header( “Content-Type: application/json” );
 
  echo json_encode($data);
 
  }
 
  4.挂接到系统上去
 
  //wp_ajax_nopriv_ 是在没有登录的处理流程;wp_ajax_是登录后的处理流程
 
  add_action( ‘wp_ajax_nopriv_***’, ‘dosome’ );
 
  add_action( ‘wp_ajax_***’, ‘dosome’ );
 
  5.编写前端代码:
 
  jQuery.post(
 
  MyAjax.ajaxurl,
 
  {
 
  action : ‘action的名字***’,
 
  },
 
  function( response ) {
 
  alert( response );
 
  }
 
  );
 
  【原理分析】
 
  请看admin-ajax.php中76行到96行
 
  $_REQUEST[‘action’]中存储的值就是$_POST[‘action’]或$_GET[‘action’],
 
  那么如果ajax请求“域名/wp-admin/admin-ajax.php”时,无论通过get还是post传递一个action的值,admin-ajaxadmin-ajax都会去查找并执行对应的处理代码。
 

(编辑:开发网_新乡站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!