web-dev-qa-db-ger.com

Wie erhalte ich ein Array von Post-Daten aus dem Ergebnis von wp_query?

Beim Ausführen einer Abfrage mit der WP_Query-Methode wurde ein Objekt abgerufen. Ich verstehe, dass ich dann die Schleife machen kann, um Sachen anzuzeigen. Mein Ziel ist es jedoch, nichts anzuzeigen. Stattdessen möchte ich einige Post-Daten abrufen, indem ich so etwas wie "foreach ..." mache. Wie kann ich eine Reihe von Post-Daten abrufen, die ich durchlaufen und abrufen kann?

34
Jenny

Sie sollten die Funktionsreferenz für WP_Query im WordPress-Codex lesen. Dort gibt es viele Beispiele zu sehen. Wenn Sie die Ergebnismenge nicht mit einer while durchlaufen möchten, können Sie alle von der Abfrage zurückgegebenen Beiträge mit dem WP_Query in der Eigenschaft posts abrufen.

Zum Beispiel

$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

Eigentlich müssen Sie sich nicht weigern, while() loop zu verwenden. Dasselbe WP_Post-Objekt ist bereits in der Eigenschaft post gespeichert:

        $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