Comment obtenir tous les messages avec n'importe quel statut de message?

31

Je crée un tableau de bord frontal dans lequel je dois afficher tous les messages de l'utilisateur actuel. Je dois donc afficher les messages dans tous les États, principalement published , trashed et pending . J'utilise maintenant une requête simple mais elle ne renvoie que les publications publiées.

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

Quelqu'un peut-il aider? Que dois-je faire d'autre?

    
posée Sisir 30.03.2011 - 15:41

3 réponses

50

Vous pouvez utiliser le paramètre 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. 

Je ne suis pas sûr qu'il accepte 'any', utilisez donc array avec tous les types souhaités:

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

while ( $loop->have_posts() ) : $loop->the_post();
    
réponse donnée Bainternet 30.03.2011 - 16:20
6

La méthode de classe WP_Query ->query() accepte un argument any pour post_status . Voir wp_get_associated_nav_menu_items() pour une preuve.

Il en va de même pour get_posts() (qui n'est qu'un wrapper pour l'appel ci-dessus).

    
réponse donnée kaiser 05.10.2012 - 13:02
5

Il existe un moyen simple d'obtenir tous les messages avec n'importe quel statut:

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

Vous pouvez maintenant parcourir tous les messages:

foreach ($articles as $article) { 
 echo $article->ID . PHP_EOL; //...
}
    
réponse donnée OzzyCzech 31.01.2013 - 10:55

Lire d'autres questions sur les étiquettes