¿Cómo obtener todas las publicaciones con estado de publicación?

31

Estoy creando un panel frontal donde necesito mostrar todas las publicaciones del usuario actual. Por lo tanto, necesito mostrar publicaciones en todos los estados, principalmente published , trashed y el pending . Ahora estoy usando una consulta simple pero está devolviendo solo las publicaciones publicadas.

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

¿Alguien puede ayudar? ¿Qué más necesito hacer?

    
pregunta Sisir 30.03.2011 - 15:41

3 respuestas

50

Puedes usar el parámetro 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. 

No estoy seguro de que acepte 'ninguna', por lo tanto, use una matriz con todos los tipos que desee:

$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();
    
respondido por el Bainternet 30.03.2011 - 16:20
6

El método de clase WP_Query ->query() acepta un argumento any para post_status . Consulta wp_get_associated_nav_menu_items() para obtener una prueba.

Lo mismo ocurre con get_posts() (que es solo un contenedor para la llamada anterior).

    
respondido por el kaiser 05.10.2012 - 13:02
5

Hay una forma sencilla de obtener todas las publicaciones con cualquier estado:

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

Ahora puedes iterar en todas las publicaciones:

foreach ($articles as $article) { 
 echo $article->ID . PHP_EOL; //...
}
    
respondido por el OzzyCzech 31.01.2013 - 10:55

Lea otras preguntas en las etiquetas