サーチ…


構文

  • $ the_query =新しいWP_Query($ args);
  • $ posts_array = get_posts($ args);

パラメーター

パラメータ説明
$ args (配列)クエリのために必要な引数の配列 - ニーズに合わせてカスタム化することができます。たとえば、カスタムポストタイプから1つのカテゴリのみからの投稿をクエリすることも、特定の分類法をクエリすることもできます

備考

クエリ引数は多数あります。 WP_Query()コーデックス・ページにはパラメータのリストがあります。それらのいくつかは

覚えておくべき最も重要なことの1つは次のとおりです。

query_posts()を使用しないでください

query_posts()はメインクエリをオーバーライドし、テーマの残りの部分で問題を引き起こす可能性があります。メインクエリ(またはその問題のクエリ)を変更する必要があるときはいつでも、 pre_get_postsフィルタを使用します。これにより、クエリが実行される前にそのクエリを変更することができます。

また、投稿を照会するときは、 wp_reset_postdata()を使用して常に投稿をリセットする必要があります。これにより、メインのクエリループのグローバル$post変数が復元され、後で問題が発生することはありません(カテゴリが除外されています。これは、セカンダリループで除外してクエリをリセットしなかったためです)。

WP_Query()オブジェクトの使用

WP_Queryオブジェクトの別のインスタンスを作成するのは簡単です:

$query_args = array(
                'post_type' => 'post',
                'post_per_page' => 10
            ); 

$my_query = new WP_Query($query_args);

if( $my_query->have_posts() ):
    while( $my_query->have_posts() ): $my_query->the_post();
       //My custom query loop
    endwhile;
endif;

wp_reset_postdata();

あなたの仕様にクエリ引数配列を構築する必要があることに注意してください。詳細については、 WP_Queryコーデックス・ページを参照してください

get_posts()の使用

get_posts()は、 WP_Queryオブジェクトの別のインスタンスのラッパーです。返される値は、ポストオブジェクトの配列です。

global $post;

$args = array(
    'numberposts' => 5,
    'offset'=> 1,
    'category' => 1
);

$myposts = get_posts( $args );

foreach( $myposts as $post ) :
    setup_postdata($post); ?>
    <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<?php endforeach;
wp_reset_postdata(); ?>

詳細については、 get_posts()コーデックスページを参照してください



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow