web-dev-qa-db-ja.com

Wp_queryの結果から投稿データの配列を取得する方法

WP_Queryメソッドでクエリを実行すると、オブジェクトが見つかりました。私はそれから私はものを表示するためにループをすることができることを理解しています。しかし、私の目標は何も表示することではなく、代わりに「foreach ...」のようなことを実行して投稿データを取得することです。ループしてデータを取得することができる一連の投稿データを取得する方法を教えてください。

34
Jenny

あなたは WP_Queryのための関数リファレンス をWordPressコーデックスで読むべきです。そこにはたくさんの例があります。 whileを使用して結果セットをループしたくない場合は、プロパティpostsWP_Queryを使用して、クエリによって返されたすべての投稿を取得できます。

例えば

$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

実際には、while()ループの使用を拒否する必要はありません。同じWP_Postオブジェクトが既に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