2 回答
TA贡献1712条经验 获得超3个赞
您需要做的只是将您的函数注册到一个名为 wp_ajax_nopriv_{your_function_name}
所以,对于你的情况,add_action( 'wp_ajax_nopriv_data_fetch', 'data_fetch' );应该做到这一点。
在 WordPress 中注册一个 ajax 函数:
1、在WordPress中注册一个ajax函数:可以在主题functions.php文件中添加这个。
// Simple Ajax function
add_action( 'wp_ajax_nopriv_simple_ajax_func', 'simple_ajax_func' );
add_action( 'wp_ajax_simple_ajax_func', 'simple_ajax_func' );
function simple_ajax_func() {
echo json_encode(array('success' => true));
wp_die();
}
2. 从 JavaScript 调用该 ajax 函数:
var ajax_url = '<?php echo admin_url( 'admin-ajax.php' ); ?>';
jQuery.ajax({
url : ajax_url,
type : 'post',
data : {
action : "simple_ajax_func",
},
success : function( response ) {
console.log('Success');
}
});
TA贡献1821条经验 获得超6个赞
你误解了 wp_ajax 动作。
您必须使用 wp_ajax 过滤器在您的主题中创建一个 PHP 函数。
add_action( 'wp_ajax_foobar', 'my_ajax_foobar_handler' );
add_action( 'wp_ajax_nopriv_foobar', 'my_ajax_foobar_handler' );
// This is the function that you will fire when your ajax code hits the admin_url('admin-ajax.php')
function my_ajax_foobar_handler() {
// Make your response and echo it.
// Don't forget to stop execution afterward.
wp_die();
}
因此,对于 WP admin ajax 了解需要触发此功能,您必须在您的 ajax 请求中传递它。
//Note that the action here is what cames after the wp_ajax PHP function
var my_php_ajax_action_name = 'foobar'
$.ajax({
url: ajaxurl,
type: 'post',
dataType: 'json',
data: { action: my_php_ajax_action_name, dates: datesSearch },
success: function(data) {
// ...
}
});
- 2 回答
- 0 关注
- 146 浏览
添加回答
举报