首页 > wordpress开发 > wordpress主题开发 > 实现wordpress的ajax接口请求学会admin-ajax.php的利用
摘要:wordpress无刷新登录,想通过ajax读取用户提交的表单,结果被wp-login.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的调用地址:http://域名/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请求“http://域名/wp-admin/admin-ajax.php”时,无论通过get还是post传递一个action的值,admin-ajaxadmin-ajax都会去查找并执行对应的处理代码。

分享到:
赞(0) 打赏

作者: 大挖酱

挖主题团队自2014年开始专注于WordPress企业主题设计开发,致力于为更多用户打造出更漂亮、更易用、更专业的网站。距今已累计开发近50款WP主题,付费客户超过5千人。挖主题,是您可以长期信赖的合作伙伴。

84 queries in 2.483 seconds

联系作者Q: 8413708 WX: zdmin7

支付宝扫一扫

微信扫一扫