条件指定して記事を表示させるサブループのWP Queryパラメータ指定方法まとめ
最終更新日: Update!!
WordPressにおいて投稿記事を表示させる時にはループを使いますが、パラメータに引数を入れることにより、いろいろな条件で絞り込んで表示することができます。今回はメインループとは別のサブループで用いるWP Queryについて、用途別にパラメータの指定方法についてまとめてみました。
基本的なサブループ(WP Query)の書き方は次の通りになります。
<?php $args = array( //変数にパラメータを指定 ); //サブループにパラメータを適用 $the_query = new WP_Query( $args ); //記事があるか無いかの判別 if ( $the_query->have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); ?> //ループの部分(記事がある時の表示内容) <?php endwhile; ?> <?php else: ?> //記事がない時の表示内容 <?php endif; ?> //ループの終了 <?php wp_reset_postdata(); //ループの設定をリセット ?>上記コードに登場する最初の変数である$argsにパラメータを指定することで、ループの設定をすることができます。
カテゴリー・タグに関する指定
カテゴリーのパラメータ指定//カテゴリーIDで指定 'cat' => 7 //論理和:カテゴリースラッグで指定 'category_name' => 'slug001, slug002' //論理和:カテゴリーIDで指定 'category__in' => array( 3, 8 ) //論理積:カテゴリースラッグで指定 'category_name' => 'slug001+slug002' //論理積:カテゴリーIDで指定 'category__and' => array( 3, 8 ) //否定論理和:カテゴリーIDで指定 'category__not_in' => array( 3, 8 )タグのパラメータ指定
//タグスラッグで指定 'tag' => 'slug001' //タグIDで指定 'tag_id' => 7 //論理和:タグIDで指定 'tag__in' => array( 4, 8) //論理和:タグスラッグで指定 'tag_slug__in' => array( 'slug001', 'slug002') //論理積:タグIDで指定 'tag__and' => array( 4, 8) //論理積:タグスラッグで指定 'tag_slug__and' => array( 'slug001', 'slug002') //否定論理和:タグIDで指定 'tag__not_in' => array( 4, 8)
著者・日付に関する指定
著者のパラメータ指定//著者IDで指定 'author' => '2,6,9' //著者nicenameで指定 'author_name' => 'user_nicename001' //論理和:著者IDで指定 'author__in' => array( 2,6,9 ) //否定論理和:著者IDで指定 'author__not_in' => array( 2,6,9 )日付のパラメータ指定
//西暦を4桁で指定 'year' => 2016 //月を指定 'monthnum' => 12 //西暦と月を指定 'm' => 201604
カスタム分類・カスタムフィールドに関する指定
タクソノミーのパラメータ指定//単一のタクソノミーを指定 'tax_query' => array( array( //タクソノミー(カスタム分類)を指定 'taxonomy' => 'taxonomy100', //先述の指定方法をスラッグに 'field' => 'slug', //指定したタクソノミーが持つターム名 'terms' => array( 'terms101', 'terms102' ), //子孫タクソノミーを持つ場合に含めるかどうか(初期値はtrue) 'include_children' => true, //演算子の指定(初期値はIN、'IN' 'NOT IN' 'AND'が使用可能) 'operator' => 'IN' ) ) //複数のタクソノミーを指定 'tax_query' => array( //複数のタクソノミーを扱う場合の指定(AND、OR) 'relation' => 'AND', array( 'taxonomy' => 'taxonomy100', 'field' => 'slug', 'terms' => array( 'terms101', 'terms102' ), 'include_children' => true, 'operator' => 'IN' ), //カンマでつなげて記述する array( 'taxonomy' => 'taxonomy200', 'field' => 'slug', 'terms' => array( 'terms203', 'terms206' ), 'include_children' => false, 'operator' => 'NOT IN' ) )カスタムフィールドのパラメータ指定
//カスタムフィールドのキー名で指定 'meta_key' => 'KEY_NAME' //カスタムフィールドの属性値名で指定 'meta_value' => 'VALUE_NAME' //カスタムフィールドの属性数値で指定 'meta_value_num' => 18
その他パラメータ指定
//投稿記事のIDで指定 'p' => 48 //論理和:複数の投稿記事のIDで指定 'post__in' => array( 104, 102, 100, 92, 90, 88 ) //投稿記事のスラッグで指定 'name' => 'slug-post001' //固定ページのIDで指定 'page_id' => 5 //固定ページのスラッグで指定 'pagename' => 'slug-page001' //投稿タイプのスラッグで指定 'post_type' => 'post' //投稿タイプの種類で複数指定 'post_type' => array( //通常の投稿 'post', //固定ページ 'page', //カスタム投稿タイプ(スラッグで指定) 'custom-post-type-slug' ) //1ページあたりの投稿記事表示数を指定(-1で全ての記事を表示させる) 'posts_per_page' => 15 //現在のページ目次を取得(サブループでページネーションを使う場合に必要) 'paged' => get_query_var('paged') //属性値の昇順で指定 'order' => 'ASC' //属性値の降順で指定 'order' => 'DESC' //日付などの条件指定で並び替える 'orderby' => 'date' //ランダムに記事を表示 'orderby' => 'rand'その他にもいろいろなパラメータを設定することができます。これらのパラメータを実際にサブループ内で指定すると次のようになります。 【PHP】
<?php $args = array( 'posts_per_page' => 15, 'post_type' => 'post', 'tax_query' => array( array( 'taxonomy' => 'taxonomy-100', 'field' => 'slug', 'terms' => 'term-101' ) ) ); $the_query = new WP_Query( $args ); if ( $the_query->have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); ?> //ループさせるコンテンツを表示 <?php endwhile; ?> <?php else: ?> <p>記事がありません</p> <?php endif; ?> <?php wp_reset_postdata(); ?>上記では、通常投稿のカスタム分類「taxonomy-100(スラッグ名)」に属する、ターム(=カテゴリーもしくはタグ)名「term-101」が関連付けられた記事をページ内に15記事分表示させます。
sponserd
keyword search
recent posts
- GSAPとvivusを使ったSVGのドローアニメーション
GSAPとvivusを使ったSVGのドローアニメーション
- GSAPでScrollTriggerプラグインを使ったスクロール固定表示アニメーションの応用
GSAPでScrollTriggerプラグインを使ったスクロール固定表示アニメーションの応用
- Shopifyでオリジナルテーマ制作やテーマカスタマイズで使えるTips #3
Shopifyでオリジナルテーマ制作やテーマカスタマイズで使えるTips #3
- Shopifyでオリジナルテーマ制作やテーマカスタマイズで使えるTips #2
Shopifyでオリジナルテーマ制作やテーマカスタマイズで使えるTips #2
- Shopifyでオリジナルテーマ制作やテーマカスタマイズで使えるTips #1
Shopifyでオリジナルテーマ制作やテーマカスタマイズで使えるTips #1
- ViteでReactとReact Routerを使ってみる
ViteでReactとReact Routerを使ってみる
- ViteでPugのコンパイル環境を導入する
ViteでPugのコンパイル環境を導入する
- ViteでMarkuplintとPrettierを使える環境を構築する
ViteでMarkuplintとPrettierを使える環境を構築する
categories