相同的基本WP_Query适用于页面,但不适用于帖子或自定义帖子类型

时间:2016-12-26 13:35:01

标签: php wordpress wordpress-theming custom-wordpress-pages

$applicationQuery = new WP_Query(array( 'post_type' => 'page', 'post_status' => 'any' ));

if($applicationQuery->have_posts()){
  $header_text = "Got post (GOOD)";
}
else{
    $header_text = "No post (BAD)";
}

同样的问题,如果我对page使用post_type,则查询会产生结果,但如果我将post_type更改为post或我自己的custom_post_type没有结果。为什么?如何解决此问题并查询我的自定义帖子类型?

2 个答案:

答案 0 :(得分:1)

试试这段代码。

        $applicationQuery  = query_posts( array( 'post_type' => array('page') ) );

         while (have_posts()) : the_post();       
                //echo the_title();
         endwhile;

答案 1 :(得分:0)

我通过在查询数组中添加'post_status' => 'published'来解决问题。

修改:根本原因是因为自定义帖子是以编程方式创建的(而不是通过管理信息中心),并且这些帖子的post_status设置为published。< / p>

Wordpress不知道published,默认情况下它只识别publish。查询中的any值实际上并未查找&#34;任何&#34; post_status,但&#34;任何公认的&#34; post_status。