无法使用POST_STATUS参数通过WP_QUERY获取草稿

时间:2012-02-16 作者:supertrue

我似乎无法让草稿与WP\\U查询一起显示,即使post\\U状态设置为“any”或“draft”

        $args = array(
                    \'p\' => 1234, 
                    \'post_type\' => \'any\',
                    \'post_status\' => \'any\'
                    );
        $query = new WP_Query( $args );

        while ( $query->have_posts() ) : $query->the_post();
            // display the post
        endwhile;

        wp_reset_postdata();
如果我回去发布帖子1234,WP\\u Query会很好地抓住它。但当它是草稿时any 也没有draft 抓住它。

我读到exclude_from_search 中的参数register_post_type() 防止帖子显示在WP\\u查询中,因此我在从中获取的post\\u类型中将其设置为false,如下所示:

$args = array(
    \'labels\' => $labels,
    \'description\' => \'\',
    \'public\' => true,
    \'publicly_queryable\' => true,
    \'exclude_from_search\' => false,
    \'show_ui\' => true,
    \'menu_position\' => 60,
    \'menu_icon\' => null,
    \'capability_type\' => post,
    \'hierarchical\' => false,
    \'supports\' => array(\'title\', \'editor\', \'author\', \'excerpt\', \'trackbacks\', \'custom-fields\', \'revisions\'),
    \'rewrite\' => true,
    \'query_var\' => true,
    \'can_export\' => true,
    \'show_in_nav_menus\' => true,
);

register_post_type(\'chart\', $args);
这里有什么我忽视的吗?我不明白为什么这种帖子类型的草稿帖子不会出现在上面的查询中。

3 个回复
SO网友:Roman

尝试将其作为数组传递。

For example

$args = array(
    \'p\' => 1234, 
    \'post_type\' => \'any\',
    \'post_status\' => array(\'draft\')
);

Or for all types

$args = array(
    \'p\' => 1234, 
    \'post_type\' => \'any\',
    \'post_status\' => array(\'publish\', \'pending\', \'draft\', \'auto-draft\', \'future\', \'private\', \'inherit\', \'trash\')
);

SO网友:Trevor Mills

我刚刚遇到了这个确切的情况。在我看来,它应该会起作用,但当我尝试\'p\' => 123\'post_status\' => \'any\', 如果帖子状态为草稿,则不会返回帖子。

我可以通过使用\'post__in\' => array( 123 ) 相反因此:

$args = array(
    \'post__in\' => array( 123 ),
    \'post_type\' => \'any\',
    \'post_status\' => \'any\',
);
$query = new WP_Query( $args );
// ... etc.

SO网友:mor7ifer

看起来你可能有一个奇怪的错误。尝试更换单线WP_Query 具有以下功能:

$query = new WP_Query();
$posts = $query->query( $args );

结束

相关推荐

Custom loop attached to link

我有一个名为公司的自定义帖子类型。当你添加一家新公司时,你需要检查它是否是领导者,所以我创建了带有两个收音机的自定义元数据库,一个表示“是”,另一个表示“否”。在头版中,我通过自定义查询筛选出了领导者我也想在公司档案中进行筛选。我想添加两个链接,“Leaders”和“New”,所以当你按“New”时,你基本上按日期过滤,当你单击“Leaders”时,它按“yes”过滤。我知道我可以用分类法、标签、类别等来做到这一点。。。但对于客户来说,只说“是”或“否”会更简单。因此,我的问题是,当您单击链接时,如何实现