it-swarm.com.de

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

Ich schreibe ein benutzerdefiniertes Plugin, das unter init initialisiert wird. Dieses Plugin versucht, nach benutzerdefinierten Beitragstypen zu suchen, die bereits in der Datenbank gespeichert sind.

Hier ist mein Code:

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

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

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

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

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

4
BFTrick

Es scheint, dass dies ein einfaches Problem war. get_posts () hat verschiedene Standardeinstellungen, von denen eine darin besteht, dass der post_status auf public gesetzt ist und mein benutzerdefinierter Beitragstyp, der post_status nicht verwendet, den Standardwert draft verwendet.

Um dies zu beheben, können Sie entweder den Post-Status abfragen (siehe Code unten) oder die Daten in der Datenbank ändern.

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