Mit WP_Query können keine Entwürfe mit dem Parameter post_status abgerufen werden

Ich kann nicht scheinen, dass Entwürfe mit WP_Query angezeigt werden, selbst wenn post_status auf “any” oder “draft” gesetzt ist.

$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(); 

Wenn ich zurück gehe und Post 1234 publiziere, greift WP_Query ganz gut. Aber wenn es ein Entwurf ist, schnappt sich weder ein Entwurf noch ein draft .

Ich habe gelesen, dass der exclude_from_search Parameter in register_post_type() verhindert, dass Beiträge mit WP_Query angezeigt werden, also setze ich ihn in dem post_type, von dem ich greife, auf 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); 

Gibt es etwas, das ich hier übersehen habe? Ich sehe nicht, warum ein Entwurfsposten in diesem Posttyp in der obigen Abfrage nicht angezeigt wird.

Solutions Collecting From Web of "Mit WP_Query können keine Entwürfe mit dem Parameter post_status abgerufen werden"

Übergeben Sie es als Array.

Beispielsweise

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

Oder für alle Arten

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

Ich bin gerade auf dieses genaue Szenario gestoßen. Meiner Meinung nach sollte es funktionieren, aber wenn ich eine Kombination von 'p' => 123 und 'post_status' => 'any' , würde es die Post nicht zurückgeben, wenn der Poststatus Entwurf ist.

Ich konnte 'post__in' => array( 123 ) indem 'post__in' => array( 123 ) benutzte. Damit:

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

Es sieht so aus, als ob Sie einen seltsamen Fehler haben könnten. Versuchen Sie, die folgende WP_Query zu ersetzen:

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