2025年4月27日 星期日 乙巳(蛇)年 正月廿八 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 服务器 > 万维网络 > WordPress

通过 admin-ajax.php 自定义 WordPress 的 Ajax 请求

时间:12-14来源:作者:点击数:15

如果你的模板需要有一些异步数据的操作,你可以在你的模板下面新建一个 ajax.php 文件,然后引入根目录的 wp-load.php 文件,然后就能使用 WordPress 的所有功能了。

通过 admin-ajax.php 自定义 WordPress 的 Ajax 请求

今天发现其实我们可以使用后台的 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 类型。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐