Warum gibt get_posts () ein leeres Set zurück?

Ich schreibe ein benutzerdefiniertes Plugin, das bei init initialisiert wird. Dieses Plugin versucht einige benutzerdefinierte Post-Typen abzufragen, die bereits in der database gespeichert sind.

Hier ist mein Code:

 $args = array() $myposts = get_posts( $args ); print_r($myposts); 

Egal welche Argumente ich in das Array $ args übergebe, ich bekomme nichts. Beispielsweise:

 $args = array( 'post_type' => 'page' ); 

Nun, zu meiner Verwirrung, wenn ich die gleichen Argumente mit get_pages() bekomme ich ein Ergebnis.

Vielleicht hat das etwas damit zu tun, wenn WP Query initialisiert wird?

Solutions Collecting From Web of "Warum gibt get_posts () ein leeres Set zurück?"

Es scheint, dass das ein einfaches Problem war. get_posts () hat verschiedene Standardeinstellungen, eine davon ist, dass post_status auf public und mein benutzerdefinierter Post-Typ, der post_status benutzt, hat den Standardwert draft .

Um dies zu beheben, können Sie entweder nach dem Status der Post abfragen (siehe Code unten) oder die Daten im DB ändern.

 $args = array( 'post_status' => 'draft', 'post_type' => 'your_custom_post_type' ); 

get_posts() ist mehr in The Loop zu verwenden.

Aber um das außerhalb der Schleife zu erledigen, versuchen Sie es mit global $post; zuerst an der Spitze …

 global $post; $args = array( 'post_type' => 'page' ); $myposts = get_posts($args);