WordPressで記事一覧取得時に使う条件
公開日:2017年03月03日
更新日:2021年08月18日
よく使うものをまとめて記録
<?php
// 一覧ページでページ番号を取得する方法
$paged = get_query_var('paged') ? get_query_var('paged') : 1 ;
// 個別ページでページ番号を取得する方法
$paged = get_query_var('page') ? get_query_var('page') : 1 ;
$args = array(
// カテゴリ
'cat' => 5, // (int) - カテゴリID.
'category_name' => 'news, other', // (string) - スラッグ:指定カテゴリのどれかに属する投稿を表示(or)
'category_name' => 'news+other', // (string) - スラッグ:指定カテゴリすべてを持つ投稿を表示(and)
'category__in' => array(1, 3), // (array) - カテゴリID:指定カテゴリのどれかに属する投稿を表示(or)
'category__and' => array(1, 3), // (array) - カテゴリID:指定カテゴリすべてを持つ投稿を表示(and)
'category__not_in' => array(1, 3), // (array) - カテゴリID:指定カテゴリ以外の投稿を表示(not)
// ※「'category__in'」と「'category__and'」は同じクエリーで同時使用できない
// タグ
'tag' => 'pickup', // (string) - タグスラッグ
'tag_id' => 2, // (int) - タグID
'tag_slug__in' => array('pickup', 'notice'), // (array) - タグスラッグ:指定タグのいずれかに属する投稿を表示(or)
'tag_slug__and' => array('pickup', 'notice'), // (array) - タグスラッグ:指定タグーすべてを持つ投稿を表示(and)
'tag__in' => array(1, 3), // (array) - タグID:指定タグのいずれかに属する投稿を表示(or)
'tag__and' => array(1, 3), // (array) - タグID:指定タグすべてを持つ投稿を表示(and)
'tag__not_in' => array(1, 3), // (array) - タグID:指定タグ以外の投稿を表示(not)
// ※「'tag__in'」と「'tag__not_in'」は同じクエリーで同時使用できない
// 件数
'posts_per_page' => 10, // (int) - 取得する投稿数 「-1」指定で全件表示
'paged' => $paged, // (int) - ページネーション時のページ数
// 事前に「 $paged = get_query_var('paged') ? get_query_var('paged') : 1 ; 」を実行して「$paged」を指定
// 並び指定
'order' => 'DESC', // (string) - 昇順・降順指定
// 'DESC'(初期値) - 大きい値から小さい値(降順) 例 3, 2, 1; c, b, a
// 'ASC' - 小さい値から大きい値(昇順) 例 1, 2, 3; a, b, c
'orderby' => 'date', // (string) - 並び替え対象フィールド
// ※複数指定は半角スペース区切り 例 'orderby' => 'author id'
// 'none' - 並び替えない
// 'ID' - 投稿ID
// 'author' - 著者
// 'title' - タイトル
// 'name' - スラッグ
// 'date'(初期値) - 日付
// 'modified' - 更新日
// 'rand' - ランダム
// 'comment_count' - コメント数
// ページタイプ
'post_type' => 'post', // (string) - ページタイプを指定
// 'post'(初期値) - 投稿
// 'page' - 固定ページ
// 'hogehoge' - カスタム投稿タイプスラッグ
'post_type' => array( // (array) - ページタイプを配列で複数指定
'post',
'page',
'hogehoge'
),
'post_status' => 'publish', // (string) - 投稿ステータス指定
// 'publish'(初期値) - 公開ページ。
// 'pending' - レビュー待ち投稿
// 'draft' - 下書き投稿。
// 'future' - 予約公開設定投稿。
// 'private' - ログインユーザー用投稿。
// 'trash' - ゴミ箱に入った投稿
'post_status' => array( //(array) - 投稿ステータスを配列で複数指定
'publish',
'private',
),
// 先頭固定表示
'ignore_sticky_posts' => 1, // (boolean) - 先頭固定表示:
// 0(初期値) - 先頭固定表示有効
// 1 - 先頭固定表示無効(ただし先頭固定表示投稿は通常位置で表示)
'post__not_in' => get_option( 'sticky_posts' ), // (array) - 先頭固定表示投稿を一覧から除外
// 投稿・固定ページ
'p' => 1, // (int) - 投稿ID
'name' => 'hello-world', // (string) - 投稿スラッグ
'page_id' => 1, // (int) - 固定ページID
'pagename' => 'sample-page', // (string) - 固定ページスラッグ
'pagename' => 'contact/tokyo', // (string) - 子ページ指定はスラッシュで区切って指定
'post__in' => array(1, 2, 3), // (array) - 指定した投稿IDを表示
// ※先頭固定投稿は条件合致投稿の前に追加される
// ※先頭固定投稿表示させない場合ignore_sticky_postsを使用
'post__not_in' => array(1, 2, 3), // (array) - 指定した投稿IDを以外表示
// ※「'post__in'」と「'post__not_in'」は同じクエリーで同時使用できない
// 日付
'year' => 2014, // (int) - 4桁の年 (例 2017)
'monthnum' => 4, // (int) - 月(1から12)
'day' => 17, // (int) - 日(1から31)
'm' => 201404, // (int) - 年月指定
// パスワードパラメーター
'has_password' => true, // (bool) - パスワード付き投稿を指定
// true - パスワード付き投稿表示
// false - でパスワードなし投稿表示
// null - でパスワード関係なく全て表示
'post_password' => 'pass', // (string) - 特定パスワードの投稿
// タクソノミー
'tax_query' => array( // (array) - タクソノミー指定する
'relation' => 'AND', // (string) - 複数タクソノミーの論理演算子
// 'AND' - 複数タクソノミーすべてに一致した投稿を表示
// 'OR' - 複数タクソノミーのいずれかに一致した投稿を表示
array(
'taxonomy' => 'taxonomy-slug1', // (string) - スラッグ:対象タクソノミーを指定
'field' => 'slug', // (string) - IDかスラッグのどちらでタクソノミー項目を指定するか
'terms' => array('pickup', 'notice'), // (int/string/array) - タクソノミー項目
'include_children' => true, // (bool) - 子タクソノミーを対象とするか
// true(初期値) - 子タクソノミーを含める
// false - 子タクソノミーを含めない
'operator' => 'IN' // (string) - termsで複数指定時の論理演算子
// 'IN' - 指定termsのいずれかに一致している投稿を表示(or)
// 'AND' - 指定termsのすべてが一致している投稿を表示(and)
// 'NOT IN' - 指定terms以外の投稿を表示
),
array(
'taxonomy' => 'taxonomy-slug2',
'field' => 'id',
'terms' => array(1, 3, 5),
'include_children' => false,
'operator' => 'NOT IN'
)
),
);
?>
同じタグのコンテンツ
同じカテゴリーのコンテンツ