wp_query return nothing

时间:2016-08-29 作者:mkafiyan

我有自定义的帖子类型“book”,我还将分类命名为最佳书籍。我想过滤分类术语,但它不起作用。我尝试放置echo和print\\r以查找问题所在,发现$loop var返回空数组。我也在其他页面使用这种风格,从来没有问题,但我找不到为什么会发生这种情况?我怎么才能把它修好。这张照片显示它返回空数组enter image description here这是我的密码

<?php $args = array( \'post_type\'=>\'book\'); 
    loop = new WP_Query( $args );
    print_r($loop);
    while ( have_posts() ) : the_post();
    $post=the_post();

    $term_list = wp_get_post_terms($post_id, \'best-book\', array("fields" => "all"));

    foreach($term_list as $term_single) 
}

?>
任何想法都将不胜感激。

1 个回复
最合适的回答,由SO网友:The J 整理而成

启动循环时,需要引用查询,否则它将显示通过主查询找到的帖子,而不是自定义查询。

尝试:

<?php

    $args = array( \'post_type\'=>\'book\'); 
    $loop = new WP_Query( $args );

    // Start the loop for your custom query
    if($loop->have_posts() ) : while ($loop->have_posts() ) : $loop->the_post();

    the_title(); // just an example, output what you need here

    // Get the post terms
    $term_list = wp_get_post_terms($post->ID, \'best-book\', array("fields" => "all"));

    // Iterate the terms, if found
    if($term_list) {
        foreach($term_list as $term_single) {
            echo $term_single;
        }
    }

    endwhile;

    // In case the query is empty
    else:

    // Debug the query
    echo \'<pre>\';
    var_dump($loop);
    echo \'</pre>\';

    endif;

?>