实现wordpress的ajax接口请求学会admin-ajax.php的利用
wordpress无刷新登录,想通过ajax读取用户提交的表单,结果被wp-log
摘要: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都会去查找并执行对应的处理代码。 (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |