通过 admin-ajax.php 自定义 WordPress 的 Ajax 请求
如果你的模板需要有一些异步数据的操作,你可以在你的模板下面新建一个 ajax.php
文件,然后引入根目录的 wp-load.php
文件,然后就能使用 WordPress 的所有功能了。
今天发现其实我们可以使用后台的 admin-ajax.php
实现我们的 Ajax 请求。
发送 Ajax 请求
下面是一个 Ajax 请求的示例:
var ajaxurl = '<?php echo admin_url('admin-ajax.php')?>'; $('#submit').click(function(e){ $.ajax({ type:'post', url:ajaxurl, data:{ 'action':'handler', 'a':$('#a').val(), 'b':$('#b').val(), 'c':$('#c').val() }, cache:false, dataType:'json', success:function(result){ $('.recordimg img').attr("src",result); }, error:function(data){ alert("err"); } }); return false; });
Ajax 的请求地址是固定的,就是 admin_url('admin-ajax.php')
函数输出地址,data
字段是要发送的数据,里面必须包含 action
字段,并且这个 action
的值必须是一个名字 handler,后面编写钩子的时候需要用到。
处理 Ajax 请求
在 theme/functions.php 里添加如下代码:
function handler(){ // to do wp_die(); } add_action( 'wp_ajax_handler', 'handler' ); add_action( 'wp_ajax_nopriv_handler', 'handler' );
上面代码中的 handler 其实就是 Ajax 请求中的 action 参数值,钩子函数必须是 wp_ajax_*
(这个是admin用户的权限)和 wp_ajax_nopriv_*
(这个是普通用户的权限),最后 handler()
函数里必须有一个 echo
和 wp_die()
或 die()
结束。并且 echo
的必须是 String 类型。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论