使用WordPress 作为管理员&使用AJAX调用WordPress函数我得到" 0" 。但是当以管理员身份退出时,一切都正常工作。
也许有人像我一样遇到类似的问题而且知道可能的解决方法吗?
我希望以管理员身份登录并注销,将返回输出(当然不是0)。
这是 functions.php 文件中的功能。
add_action('wp_ajax_nopriv_get_category_data', 'getCategoryData');
add_action('wp_ajax_load_get_category_data', 'getCategoryData');
function getCategoryData()
{
$data = [
'category' => htmlspecialchars($_POST['category'])
];
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args= array(
'post_type' => 'Coupons',
'posts_per_page' => 8,
'post_status' => 'publish',
'paged' => $paged,
'rewrite' => array( 'slug' => 'CustomCat' ),
'caller_get_posts'=> 1
);
$couponBlock = new WP_Query( $args );
if ($data['category']) {
$the_query = new WP_Query(array ('cat' => $data['category'], 'posts_per_page' => 8) );
if ($the_query->have_posts()):
while ($the_query->have_posts()): $the_query->the_post();
get_template_part('template/ajaxCustomCat', 'page');
endwhile;
wp_die();
endif;
} else {
return 'no data';
}
}
答案 0 :(得分:2)
您还必须将ajax函数注册为admin或特权ajax调用。所以你的电话应该是这样的:
add_action( 'wp_ajax_add_foobar', 'prefix_ajax_add_foobar' );
add_action( 'wp_ajax_nopriv_add_foobar', 'prefix_ajax_add_foobar' );
https://codex.wordpress.org/Plugin_API/Action_Reference/wp_ajax_(action)
请记住,您还通过 ajax 返回数据,因此AJAX读取的回报实际上是echo
。因此,需要发送回前端的数据应为echoed
。如果要删除wordpress随其输出一起发送的0
,请在函数末尾添加exit()
以表示已完成的呼叫。