WordPress主题或插件Ajax请求教程
有一个主题需要在文章页面提交Ajax请求,并在当前页面进行服务端处理,按照常规方法编写代码,结果总是返回404错误。
WordPress主题或插件Ajax请求的正确姿势是:通过admin-ajax.php页面提交。
服务端处理:
如果是主题开发,在functions.php中添加以下代码:
function funcname() {
//服务端处理
}
add_action('wp_ajax_funcname', 'funcname'); //已登录用户
add_action( 'wp_ajax_nopriv_funcnamer', 'funcname' ); //未登录用户
注意funcname为处理函数的名称,可以自定义。hook有两个,一个用于已登录用户,另一个用于未登录用户,两个钩子可以对应不同的函数,以便对不同用户作出不一样的处理,这里的示例对不同用户都作同样的处理。
前端脚本:
前端示例代码:
$.ajax({
cache: false,
type: 'POST',
dataType: 'json',
url: '<?php echo admin_url("admin-ajax.php"); ?>',
data: $('form').serialize(),
async: true,
success: function (data) {
if (data.status == 'success') {
} else {
}
},
error: function(e){
console.log(e.status + ':' + e.statusText);
}
});
服务端示例代码:
function my_func() {
$name = $_POST['name'];
die(json_encode(array('status' => 'success', 'info' => $name)));
}
add_action('wp_ajax_my_func', 'my_func');
add_action( 'wp_ajax_nopriv_my_func', 'my_func' );
版权声明:原创作品,未经允许不得转载,否则将追究法律责任。
本站资源有的自互联网收集整理,如果侵犯了您的合法权益,请联系本站我们会及时删除。
本站资源仅供研究、学习交流之用,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担。
本文链接:子佩工作室https://zptheme.com/5380.html
许可协议:《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权
本站资源有的自互联网收集整理,如果侵犯了您的合法权益,请联系本站我们会及时删除。
本站资源仅供研究、学习交流之用,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担。
本文链接:子佩工作室https://zptheme.com/5380.html
许可协议:《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权