如何获取所有有任何岗位状态的岗位?

时间:2011-03-30 作者:Sisir

我正在创建一个前端仪表板,需要在其中显示当前用户的所有帖子。所以,我需要显示所有州的帖子,主要是published, trashed 还有pending. 我现在使用一个简单的查询,但它只返回已发布的帖子。

$query = array(
    \'post_type\' => \'my-post-type\',
    \'post_author\' => $current_user->ID              
    );
    query_posts($query);
有人能帮忙吗?我还需要做什么?

6 个回复
最合适的回答,由SO网友:Bainternet 整理而成

您可以使用post\\u状态参数:

* \'publish\' - a published post or page
* \'pending\' - post is pending review
* \'draft\' - a post in draft status
* \'auto-draft\' - a newly created post, with no content
* \'future\' - a post to publish in the future
* \'private\' - not visible to users who are not logged in
* \'inherit\' - a revision. see get_children.
* \'trash\' - post is in trashbin. added with Version 2.9. 
我不确定它是否接受“any”,因此请将数组与您想要的所有状态一起使用:

$args = array(
    \'post_type\' => \'my-post-type\',
    \'post_author\' => $current_user->ID,
    \'post_status\' => array(\'publish\', \'pending\', \'draft\', \'auto-draft\', \'future\', \'private\', \'inherit\', \'trash\')    
);
$query = new WP_Query($args);

while ( $query->have_posts() ) : $query->the_post();

SO网友:OzzyCzech

有一种简单的方法,可以获取所有状态为任意的帖子:

$articles = get_posts(
 array(
  \'numberposts\' => -1,
  \'post_status\' => \'any\',
  \'post_type\' => get_post_types(\'\', \'names\'),
 )
);
现在,您可以在所有帖子中进行迭代:

foreach ($articles as $article) { 
 echo $article->ID . PHP_EOL; //...
}

SO网友:Sergey Zaharchenko

在大多数情况下,您可以使用get_posts() 具有\'any\' 此参数:

$posts = get_posts(
 array(
  \'numberposts\' => -1,
  \'post_status\' => \'any\',
  \'post_type\' => \'my-post-type\',
 )
);
但这样你就不会得到有地位的帖子trashauto-draft. 您需要明确地提供它们,如下所示:

$posts = get_posts(
 array(
  \'numberposts\' => -1,
  \'post_status\' => \'any, trash, auto-draft\',
  \'post_type\' => \'my-post-type\',
 )
);
或者可以使用get\\u post\\u stati()函数显式提供所有现有状态:

$posts = get_posts(
 array(
  \'numberposts\' => -1,
  \'post_status\' => get_post_stati(),
  \'post_type\' => \'my-post-type\',
 )
);

SO网友:kaiser

这个WP_Query 类方法->query() 接受any 的参数post_status. 看见wp_get_associated_nav_menu_items() 作为证据。

同样的道理也适用于get_posts() (这只是上述调用的包装)。

SO网友:XedinUnknown

即使你通过anypost_status, 你still will not get the post in the result 如果以下所有条件均为真:

正在查询单个帖子。这方面的一个示例是name, i、 e.鼻涕虫

解决方案

针对每个状态显式查询。例如,要查询不是trashauto-draft (你不太可能想要这些),你可以这样做:

$q = new WP_Query([
    /* ... */
    \'post_status\' => array_values(get_post_stati([\'exclude_from_search\' => false])),
]);

SO网友:Peter

因为我还不能发表评论:$args[\'post_status\']=\'any\'; 为“发布”和“草稿”工作,但不为“垃圾”工作,我需要$args[\'post_status\']=array(\'any\',\'trash\');

结束

相关推荐