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?
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);