web-dev-qa-db-fra.com

Pourquoi get_posts () renvoie-il un ensemble vide?

J'écris un plugin personnalisé qui est initialisé à init. Ce plugin tente de rechercher certains types de publication personnalisés déjà stockés dans la base de données.

Voici mon code:

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

Quels que soient les arguments que je passe dans le tableau $ args, je ne reçois rien. Par exemple:

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

Maintenant, à ma confusion si j'utilise exactement les mêmes arguments avec get_pages(), j'obtiens un résultat.

Cela a peut-être quelque chose à voir avec le moment où WP La requête est initialisée?

4
BFTrick

Il semble que ce soit un problème simple. get_posts () a divers paramètres par défaut, notamment que post_status est défini sur public et mon type de message personnalisé qui n’utilise pas post_status a utilisé la valeur par défaut, draft.

Pour résoudre ce problème, vous pouvez interroger par statut de publication (voir le code ci-dessous) ou modifier les données de la base de données.

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