web-dev-qa-db-fra.com

Obtenir tous les identifiants d'un type de publication à l'aide de WP_Query

J'essaie d'obtenir la liste des identifiants d'un type de publication personnalisé à l'aide de WP_Query, mais les résultats non souhaités sont renvoyés, ce qui correspond à une fuite de mémoire et à un navigateur bloqué.

Voici le code que j'utilise:

    $the_query = new WP_Query("post_type=post&posts_per_page=-1&field=ids");    
    if ($the_query->have_posts()) {
      while ($the_query->have_posts()){
         echo get_the_ID();
      }
    }

Mon navigateur tente infiniment de charger la page. Peut-être que quelqu'un sait ce qui ne va pas avec le code ci-dessus ..

3
KeepMove

Il vous manque l'appel de la fonction the_post() dans la boucle. Il suffit d'ajouter

$the_query->the_post();

dans ta boucle. En dehors de cela, votre boucle devrait fonctionner

MODIFIER

N'oubliez pas non plus de réinitialiser vos données postérieures une fois la requête terminée.

3
Pieter Goosen

Je sais que vous voulez une solution "utilisant WP_Query", mais pourquoi ne pas utiliser get_posts() pour cela?

$posts_ids = get_posts('post_type=post&posts_per_page=-1&fields=ids');
// $posts_ids is now an array of IDs
echo implode(',', $posts_ids); // prints: 123, 124, 125, 126, ...

// or

foreach( $posts_ids as $id ) {
    echo $id;
}
4
Marek