web-dev-qa-db-fra.com

Comment obtenir un tableau de données de poste à partir du résultat de wp_query?

Lors de l'exécution d'une requête avec la méthode WP_Query, j'ai obtenu un objet. Je comprends que je peux ensuite faire la boucle pour afficher des contenus. Mais, mon objectif n'est pas d'afficher quoi que ce soit, je veux obtenir des données de post en faisant quelque chose comme "foreach ...". Comment puis-je obtenir un tableau de données post que je peux parcourir et obtenir des données?

34
Jenny

Vous devriez lire la référence de fonction pour WP_Query sur le codex WordPress. Là vous avez beaucoup d'exemples à regarder. Si vous ne souhaitez pas parcourir l'ensemble de résultats à l'aide de while, vous pouvez obtenir toutes les publications renvoyées par la requête avec le WP_Query dans la propriété posts.

Par exemple

$query = new WP_Query( array( 'post_type' => 'page' ) );
$posts = $query->posts;

foreach($posts as $post) {
    // Do your stuff, e.g.
    // echo $post->post_name;
}
71
rofflox

En fait, vous n'avez pas besoin de refuser d'utiliser la boucle while(). Le même objet WP_Post est déjà stocké dans la propriété post:

        $query = new WP_Query( $args );

        if ( $query->have_posts() ) {

            while ( $query->have_posts() ) {

                $query->the_post();

                // now $query->post is WP_Post Object, use:
                // $query->post->ID, $query->post->post_title, etc.

            }

        }
11
vladkras