WordPress
投稿のクエリ
サーチ…
構文
- $ the_query =新しいWP_Query($ args);
- $ posts_array = get_posts($ args);
パラメーター
パラメータ | 説明 |
---|---|
$ args | (配列)クエリのために必要な引数の配列 - ニーズに合わせてカスタム化することができます。たとえば、カスタムポストタイプから1つのカテゴリのみからの投稿をクエリすることも、特定の分類法をクエリすることもできます |
備考
クエリ引数は多数あります。 WP_Query()コーデックス・ページにはパラメータのリストがあります。それらのいくつかは
- 著者パラメータ
- カテゴリパラメータ
- タグパラメータ
- 分類パラメータ
- 検索パラメータ
- ポスト&ページパラメータ
- パスワードのパラメータ
- 型パラメータ
- ステータスパラメータ
- ページ区切りパラメータ
- Order&Orderbyパラメータ
- 日付パラメータ
- カスタムフィールドのパラメータ
- 権限パラメータ
- Mime型のパラメータ
- キャッシングパラメータ
- フィールドを返す
覚えておくべき最も重要なことの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