Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript wordpress和wp_查询中的ajax_Javascript_Php_Ajax_Wordpress - Fatal编程技术网

Javascript wordpress和wp_查询中的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 {

在我的funcitons.php文件中,有一个函数响应ajax调用并返回帖子:

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(); ?>"},