sisir
  • 0
Эксперт

Как получить все сообщения с любым статусом?

  • 0

Я создаю панель управления переднего плана, где мне нужно показать все сообщения текущего пользователя. Итак, мне нужно показать сообщения во всех состояниях, в основном published, trashed и pending . Сейчас я использую простой запрос, но он возвращает только опубликованные сообщения.

$query = array(
    'post_type' => 'my-post-type',
    'post_author' => $current_user->ID              
    );
    query_posts($query);

Кто-нибудь может помочь? Что еще мне нужно сделать?

Share
  1. Вы пытались использовать post_status параметр, т.е. 'post_status' => 'any' ?

    • 0
  2. Вы можете использовать параметр post_status:

    * '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. 
    

    Я не уверен, что он принимает «любой», поэтому используйте массив со всеми нужными вам статусами:

    $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();
    
    • 0
  3. Есть простой способ, как получить все посты с любым статусом:

    $articles = get_posts(
     array(
      'numberposts' => -1,
      'post_status' => 'any',
      'post_type' => get_post_types('', 'names'),
     )
    );
    

    Теперь вы можете перебирать все сообщения:

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

Оставить ответ

You must login to add an answer.