Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/249.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
Php WP_使用每个页面的帖子查询问题-1_Php_Ajax - Fatal编程技术网

Php WP_使用每个页面的帖子查询问题-1

Php WP_使用每个页面的帖子查询问题-1,php,ajax,Php,Ajax,这有点奇怪,我需要一些关于WP_查询()问题的帮助或解释 当您到达特定页面时,“我的代码”通过元查询获取所有帖子类型的项目: echo 'apple'; $args = array( 'post_type' => "family", 'meta_query' => array( array('key' => '_family') ), 'posts_per_pag

这有点奇怪,我需要一些关于WP_查询()问题的帮助或解释

当您到达特定页面时,“我的代码”通过元查询获取所有帖子类型的项目:

     echo 'apple';
     $args = array(
        'post_type' => "family",
        'meta_query' => array(
                array('key' => '_family')
        ),
        'posts_per_page'=>'9000' // number post in this post type: 18 000 entries
    );

    $my_query = new WP_Query($args);
    echo 'banana';
如果在加载页面时使用。。可以。。我看到我的“香蕉”回声

如果我在“ajax”中这样做,则返回值为“null”,我没有看到我的“香蕉”,但看到了“苹果”

我已经试过使用posts\u per\u page=>'3',它在ajax中运行良好

测试:

此外,我们在php.ini上有4Go用于内存限制

如果我在“安全模式开启”下运行,一切正常

有什么想法吗

谢谢大家!

编辑

$('body.woocommerce-account #famille-list a').on('click',function (e){
    if($(this).data('action') == "edit"){
        e.preventDefault();
        showProgress();
        jQuery.ajax({
        type: "post",
        dataType: "json",
        async: true,
        url: scriptParams.ajaxurl,
        data: {
            action: "edit_family",
            id: $(this).data('id')
        },
        success: function(data) {

            if(data != null && data.success == 1){
                if($('form.myfamily').css('display')=='none'){
                    $('form.myfamily').prev().find('h3').click();
                }
                $('input[name=save_children]').val('Modifier');
                $('input[name=id]').val(data.member.id);
                hideProgress();
            }
        }
    });
  }
});

对于AJAX,请求应该只有一个
echo
语句,该语句使用
json\u encode
传递,之后还有一个
die()
语句。如果这不能解决您的bug,那么这至少是一个好的实践,因为它清楚地表明了您的HTTP响应是什么

header( "Content-Type: application/json" );
echo json_encode('apple');
die();
// Code should not reach your banana statement
因此,对于您的代码,您应该执行以下操作:

$response = array();
$response[] = 'apple';
 $args = array(
    'post_type' => "family",
    'meta_query' => array(
            array('key' => '_family')
    ),
    'posts_per_page'=>'9000' // number post in this post type: 18 000 entries
);

$my_query = new WP_Query($args);
$response[] = 'banana';

header( "Content-Type: application/json" );
// will return an array with the value ['apple', 'bannana'];
echo json_encode($response); 
die();

另外,您是否直接调用PHP文件?那是WordPress的坏习惯。有一种既定的方法可以处理AJAX请求:(它说是用于插件的,但主题也可以使用它)。一开始有点罗嗦,很难理解,但它更干净、更灵活

安全模式是建议的运行方式。如果它能工作,你为什么要关掉它。。不知道。。我一直认为最好关闭这个功能。你能发布你的JavaScript代码吗?那会很有帮助的。我认为破坏你代码的是
echo“apple”香蕉前的语句。AJAX响应将只返回第一条echo语句,仅此而已。它将忽略你的
回声“banana”语句。@JorgeSilva:我已经用我的JS代码进行了编辑。回音只用于跟踪代码的死亡位置。我也使用wp_ajax和wp_ajax_nopriv。您的ajax请求将只返回您的第一条
echo
语句。所以我并不奇怪你只得到“苹果”作为你的AJAX回应。它正常工作了!您可以创建一个变量数组作为响应返回,也可以将
echo
banana作为响应返回。
$response = array();
$response[] = 'apple';
 $args = array(
    'post_type' => "family",
    'meta_query' => array(
            array('key' => '_family')
    ),
    'posts_per_page'=>'9000' // number post in this post type: 18 000 entries
);

$my_query = new WP_Query($args);
$response[] = 'banana';

header( "Content-Type: application/json" );
// will return an array with the value ['apple', 'bannana'];
echo json_encode($response); 
die();