📅  最后修改于: 2023-12-03 15:21:15.399000             🧑  作者: Mango
wp_ajax_nopriv
是一个 WordPress 提供的 Ajax 请求的函数,主要用于无需登录的情况下发起异步请求。
add_action( 'wp_ajax_nopriv_your_action', 'your_function' );
add_action( 'wp_ajax_your_action', 'your_function' );
function your_function() {
// 这里写处理 Ajax 请求的代码
}
其中,wp_ajax_nopriv_your_action
用于无需登录的情况下调用函数,而 wp_ajax_your_action
则是需要登录后才能调用的函数。
jQuery.ajax({
type: 'POST',
url: ajaxurl,
data: {
action: 'your_action', // 对应上面的函数名称
some_data: 'some_value' // 请求需要传递的数据
},
success: function(response) {
console.log(response); // 处理响应数据
},
error: function(xhr, status, error) {
console.log(xhr.responseText); // 处理错误信息
}
});
需要注意的是,JavaScript 代码需要用到 ajaxurl
变量,它是 WordPress 自带的 Ajax 请求 URL。
以下是一个简单的示例,展示如何使用 wp_ajax_nopriv
实现 Ajax 请求:
add_action( 'wp_ajax_nopriv_hello_world', 'hello_world' );
add_action( 'wp_ajax_hello_world', 'hello_world' );
function hello_world() {
echo 'Hello World';
wp_die();
}
jQuery(document).ready(function($) {
$('#my_button').click(function() {
jQuery.ajax({
type: 'POST',
url: ajaxurl,
data: {
action: 'hello_world'
},
success: function(response) {
$('#my_div').html(response);
},
error: function(xhr, status, error) {
alert(xhr.responseText);
}
});
});
});
<button id="my_button">Click Me</button>
<div id="my_div"></div>
通过 wp_ajax_nopriv
函数,我们可以轻松地实现 WordPress 中的 Ajax 请求。在使用过程中,需要注意传递的数据格式以及请求方法等细节,才能顺利地获取到需要的数据。