使用 wp_ajax_(action) 为 WordPress 添加自定义 Ajax URL,发送 Ajax 请求到后端处理程序

文 / @WordPress主题

函数使用教程

我是小本本,今天给大家介绍一下wp_ajax_(action)函数的使用方法。

函数描述

wp_ajax_(action)是一个钩子函数,它可以让我们挂载自定义的函数来处理Ajax请求。这个钩子的格式为"wp_ajax_$your_action",其中$your_action是Ajax请求的'action'属性。如果我们需要更加灵活地控制Ajax请求的URL,我们也可以使用第三方库实现的自定义路由创建AjaxURL。不过,相对于自定义路由的方式,wp_ajax_(action)的方式将一个固定的AjaxURL添加到了javaScript全局对象中,然后通过请求的‘action’数据来区分不同的Ajax请求,这种方式更方便我们在JavaScript中实现。

使用方法

如果我们需要添加一个"add_foobar"请求,我们可以按照下面的方式创建Ajax处理函数。

add_action('wp_ajax_add_foobar','prefix_ajax_add_foobar');
functionprefix_ajax_add_foobar(){
//处理请求然后使用WP_Ajax_Response生成响应

//处理完成后,不要忘记结束程序
wp_die();
}

当我们向WordPress发送Ajax请求时,如果‘action’属性设置为‘add_foobar’,我们定义的钩子,以及挂载到钩子上的函数,都会自动运行。例如,下面的例子将会执行我们定义的Ajax处理程序。

jQuery.post(
ajaxurl,
{
'action':'add_foobar',
'data':'foobarid'
},
function(response){
c-alert('服务器响应为:'+response);
}
);

注意:上面的例子中,“data”参数的值(foobarid)可以在挂载的函数中,通过$_POST数组访问。

注意事项

  • wp_ajax_(action)钩子只允许已登录的用户访问。如果我们需要同时监听未登录用户的Ajax请求,需要使用wp_ajax_nopriv_钩子,例如add_action('wp_ajax_nopriv_add_foobar','prefix_ajax_add_foobar')
添加UTHEME为好友
扫码添加UTHEME微信为好友
· 分享WordPress相关技术文章,主题上新与优惠动态早知道。
· 微信端最大WordPress社群,限时免费入群。