【WP】よく使うループのクエリパラメータ引数の書きとめ
2021/10/12
2021/10/18
2149 views
WPループクエリのパラメータ
ワードプレスのループで指定するクエリのパラメーター及びステータス・引数のメモ書きです。
よく使うものだけを掲載しています。
目次
‘post_type’(投稿のタイプ)のパラメータ
‘post_type‘は、投稿のタイプを指定ができます。
‘post’ | 投稿 |
‘page’ | 固定ページ |
‘カスタム投稿タイプ(※スラッグ)’ | カスタム投稿 |
記述例
$args = array(
'post_type' => 'page', //固定ページを取得
);
‘orderby’(取得順ルール)のパラメータ
‘orderby‘は、投稿の取得順ルールが指定できます。
‘none’ | 順序をつけない |
‘ID’ | 投稿IDで並べる |
‘author’ | 著者で並べる |
‘title’ | タイトルで並べる |
‘date’ | 日付で並べる |
‘modified’ | 更新日で並べる |
‘parent’ | 投稿/固定ページの親ID順で並べる |
‘rand’ | ランダムに並べる |
‘comment_count’ | コメント数で並べる |
‘menu_order’ | 管理画面上の表示順で並べる |
‘meta_value’ | カスタムフィールドの値で並べる |
‘meta_value_num’ | カスタムフィールドを数値順で並べる |
‘post__in’ | 配列に並んだ投稿IDの順に並べる |
記述例
$args = array(
'orderby' => 'menu_order' //管理画面上の並び順
);
‘order’(昇順か降順)のパラメータ
‘orderby‘は、投稿の表示順の昇順か降順が指定できます。
‘ASC’ | 昇順 |
‘DESC’ | 降順 |
記述例
$args = array(
'order' => 'ASC', //昇順
);
‘post_status’(投稿の状態)のパラメータ
‘post_status‘は、投稿の状態で取得の指定ができます。
‘publish’ | 公開された投稿もしくは固定ページ |
‘pending’ | レビュー待ちの投稿 |
‘draft’ | 下書きの投稿 |
‘future’ | 予約公開設定された投稿 |
‘private’ | ログインユーザーのみ見れる投稿 |
記述例
$args = array(
'post_status' => 'publish', //公開済みのページのみ取得
);
日付や時間の指定パラメータ
投稿の日付や時間で指定したい時のパラメータです。
‘year’ | 年 |
‘monthnum’ | 月 |
‘w’ | 年内の週番号(1から53) |
‘day’ | 日 |
‘hour’ | 時 |
‘minute’ | 分 |
‘second’ | 秒 |
‘m’ | 年と月で指定 |
記述例
$args = array(
'year' => 2020, //年の指定
'mouthnum' => 4, //月の指定
'w' => 26, //週番号の指定
'day' => 30, //日の指定
'hour' => 11, //時間の指定
'minute' => 6, //分の指定
'second' => 7, //秒の指定
'm' => 202103 //年と月で指定
);
特定の投稿・固定ページの指定パラメータ
特定の投稿や固定ページを指定したい時のパラメータです。
‘p’ | 投稿IDで指定 |
‘title’ | 投稿のタイトル |
‘name’ | 投稿のスラッグ |
‘page_id’ | 固定ページのID |
‘pagename’ | 固定ページのスラッグを指定 |
‘post_parent’ | 固定ページの親IDを指定 |
‘post__in’ | 投稿IDを配列で複数指定 |
‘post__not_in’ | 省きたい投稿IDを配列で指定 |
記述例
$args = array(
'p' => 7, //投稿IDの指定
'name' => 'coffee', //投稿スラッグの指定
'page_id' => 12, //固定ページIDの指定
'pagename' => 'shop', //固定ページスラッグの指定
'post_parent' => 3, //親IDの指定
'post__in' => array(2, 8, 13), //投稿IDを配列で指定
'post__not_in' => array(2, 7), //省きたい投稿のIDを配列で指定
);
1ページあたりの取得数・ページ送りの指定
1ページあたりのループの取得数と、ページ送りの指定パラメータです。
‘posts_per_page’ | 1ページでの表示ループ数の設定 |
‘posts_per_archive_page’ | |
‘paged’ |
記述例
$args = array(
'posts_per_page' => 20, //取得する投稿数の指定
'posts_per_archive_page' => 20, //取得する投稿数の指定(アーカイブ専用)
'paged' => $paged, //現在のページ番号の指定
);
カテゴリーの指定
投稿のカテゴリーによって指定するパラメータです。
記述例
$args = array(
'cat' => 5,
'category_name' => 'food, drink',
'category__and' => array( 3, 7 ), //3かつ7
'category__in' => array( 4, 8 ), //4または8
'category__not_in' => array( 2, 4 ) //2,4以外
);
タグの指定
投稿のタグで指定するパラメータです。
記述例
$args = array(
'tag_id' => 5,
'tag' => 'html+css',
'tag__and' => array( 1, 6 ),
'tag__in' => array( 1, 6 ),
'tag__not_in' => array( 1, 6 ),
'tag_slug__and'=> array( 'html', 'css' ),
'tag_slug__in'=> array( 'html', 'css' )
);
タクソノミーの指定
タクソノミーで指定するパラメータです。
‘tax_query’ | |
‘taxonomy’ | |
‘field’ | |
‘operator’ | |
‘include_children’ | |
‘relation’ |
記述例
$args = array(
'tax_query' => array( //タクソノミーに関する指定を定義
'relation' => 'AND', //条件1,2をどのような関係で指定するか
//条件1
array(
'taxonomy' => 'menu', //タクソノミー名を指定
'field' => 'id', //タームの指定をIDで指定するか、slugで指定するか
'terms' => array(10, 34, 55), //タームをIDで指定
'operator' => 'AND', //'terms'をどの関係で指定するか
'include_children' => false, //子タクソノミーを含めるかどうか
),
//条件2
array(
'taxonomy' => 'menu',
'field' => 'slug',
'terms' => 'action', //タームをスラッグで指定('field'が'slug'なので)
)
)
);
まとめ
ループのクエリパラメータを指定することで、特定のカテゴリーや、日付アーカイブなどさまざまな投稿一覧ページやウィジェット出力が可能になります
ワードプレスをテーマから開発するうえでは必須の操作となりますので、使いこなせるようになりましょう。
不明なことがあればお気軽にコメントください。
この記事へのコメント
- まだ書き込みはありません