Javascript wordpress和wp_查询中的ajax
在我的funcitons.php文件中,有一个函数响应ajax调用并返回帖子:Javascript wordpress和wp_查询中的ajax,javascript,php,ajax,wordpress,Javascript,Php,Ajax,Wordpress,在我的funcitons.php文件中,有一个函数响应ajax调用并返回帖子: functions.php: function returnPosts(){ if ( have_posts() ) { while ( have_posts() ) { the_post(); get_template_part('content', get_post_format()); } } else {
functions.php:
function returnPosts(){
if ( have_posts() ) {
while ( have_posts() ) {
the_post();
get_template_part('content', get_post_format());
}
} else {
get_template_part( 'content', 'none' );
}
exit();
}
add_action('wp_ajax_returnPosts', 'returnPosts');
add_action('wp_ajax_nopriv_returnPosts', 'returnPosts');
Javascript(在index.php中):
jQuery.ajax({
类型:“POST”,
url:“”,
数据:{“行动”:“返回岗位”},
成功:功能(结果){
//有结果地工作
}
});
但当我通过JS调用此函数时,我总是从content-none.php文件中获取内容。快速修复方法是:
include(“../../../wp load.php”)代码>看起来您假设AJAX调用已经知道页面上显示了什么帖子,因为您正在检查have_posts(),而没有创建自己的WP_查询。但是AJAX调用是作为一个单独的HTTP请求传入的,它对上一页所知道的只是您告诉它的内容
除了在AJAX调用中传递您的“操作”名称外,还可以尝试传递当前帖子的ID。我不是在真正的计算机前测试这个,但是假设您在输出jQuery代码时处于循环中,这应该可以工作:
data: {"action": "returnPosts", "p": "<?php the_ID(); ?>"},
data:{“action”:“returnPosts”,“p”:“},
不,它不起作用。我认为问题在于没有定义wp_查询变量。
data: {"action": "returnPosts", "p": "<?php the_ID(); ?>"},