めっちゃ参考になるページを見つけた。
絞り込みをするたびに色々ググっていたが、これがあればほとんどのことが解決できそうな気がする。
参考: これは便利!WordPressのWP_Queryでよく使うコードスニペット | それからデザイン スタッフブログ
下記、参考ページから、ほぼまるっと抜粋。
<?php
$args = array(
// 特定の「著者」に関連付けられた投稿を表示する場合
'author' => '1,2,3', // 著者IDを指定
'author_name' => 'solecolor', // user_nicenameを指定(名前ではありません)
'author__in' => array(2, 6), // 著者IDを配列で指定(著者IDを含む記事を絞り込む)
'author__not_in' => array(2, 6), // 著者IDを配列で指定(著者IDを含まない記事を絞り込む)
// 特定の「カテゴリー」に関連付けられた投稿を表示する場合
'cat' => 5, // カテゴリーIDを指定
'category_name' => 'daily, news', // カテゴリースラッグを指定(複数の場合は「,」で区切る)
'category__and' => array(2, 6), // カテゴリーIDを配列で指定(カテゴリーIDを含む記事を絞り込む)
'category__in' => array(2, 6), // カテゴリーIDを配列で指定(カテゴリーIDを含む記事を絞り込む)
'category__not_in' => array(2, 6), // カテゴリーIDを配列で指定(カテゴリーIDを含まない記事を絞り込む)
// 特定の「タグ」に関連付けられた投稿を表示する場合
'tag' => 'cooking', // タグスラッグを指定
'tag_id' => 5, // タグIDを指定
'tag__and' => array(2, 6), // タグIDを配列で指定(タグIDを含む記事を絞り込む)
'tag__in' => array(2, 6), // タグIDを配列で指定(タグIDを含む記事を絞り込む)
'tag__not_in' => array(2, 6), // タグIDを配列で指定(タグIDを含まない記事を絞り込む)
'tag_slug__and' => array('red', 'blue'), // タグスラッグを配列で指定(タグスラッグを含む記事を絞り込む)
'tag_slug__in' => array('red', 'blue'), // タグスラッグを配列で指定(タグスラッグを含む記事を絞り込む)
// 特定の「タクソノミー」に関連付けられた投稿を表示する場合(以下は複数のタクソノミーにてAND検索)
'tax_query' => array( //タクソノミーパラメーターを指定
'relation' => 'AND', // タクソノミーの検索条件に 'AND' か 'OR' が使用可能
array(
'taxonomy' => 'color', // タクソノミーを指定
'field' => 'slug', // term_id(デフォルト),name,slug のいずれかのタームの種類を選択
'terms' => array('red', 'blue'), // ターム(文字列かIDを指定)
'include_children' => true, // 階層を持つタクソノミーの場合に、子孫タクソノミーを含めるかどうか
'operator' => 'IN' // 演算子'IN','NOT IN','AND','EXISTS'(4.1.0以降),'NOT EXISTS'(4.1.0以降)が利用可能
),
array(
'taxonomy' => 'actor',
'field' => 'id',
'terms' => array(103, 115, 206),
'include_children' => false,
'operator' => 'NOT IN'
)
),
// 特定の「投稿&固定ページ」に関連付けられた投稿を表示する場合
'p' => 1, // 投稿IDを指定
'name' => 'hello-world', // 投稿スラッグを指定
'page_id' => 1, // 固定ページのIDを指定
'pagename' => 'sample-page', // ページスラッグを指定
'pagename' => 'contact_us/canada', // 子ページを表示する場合、スラッシュ区切りで親と子のスラッグを指定
'post_parent' => 1, // ページIDを指定した子ページを表示
'post_parent__in' => array(1, 2, 3), // 配列の親ページIDを含む投稿を表示
'post_parent__not_in' => array(1, 2, 3), // 配列の親ページIDを含まない投稿を表示
'post__in' => array(1, 2, 3), // 配列の投稿IDを含む投稿を表示
'post__not_in' => array(1, 2, 3), // 配列の投稿IDを含まない投稿を表示
// 特定の「パスワード」に関連付けられた投稿を表示する場合
'has_password' => true, // パスワード付きの投稿を表示(true or false)
'post_password' => 'zxcvbn', // 特定のパスワードが付いた投稿を表示
// 特定の「タイプ」に関連付けられた投稿を表示する場合(一つの場合)
'post_type' => 'post', // 投稿
'post_type' => 'page', // 固定ページ
'post_type' => 'revision', // リビジョン
'post_type' => 'attachment', // 添付ファイル
'post_type' => 'custom-post-type', // カスタム投稿タイプ or カスタム投稿名
// 特定の「タイプ」に関連付けられた投稿を表示する場合(複数の場合)
'post_type' => array(
'post', // 投稿
'page', // 固定ページ
'revision', // リビジョン
'attachment', // 添付ファイル
'custom-post-type' // カスタム投稿タイプ or カスタム投稿名
),
'post_type' => 'any', // すべてのタイプを含めて表示(リビジョンと'exclude_from_search'がtrueにセットされたものを除く)
// 特定の「投稿ステータス」に関連付けられた投稿を表示する場合
'post_status' => array( //投稿ステータスを指定 (デフォルト'publish')
'publish', // 公開された投稿、または固定ページを表示
'pending', // レビュー待ちの投稿を表示
'draft', // 下書きの投稿を表示
'auto-draft' // コンテンツのない、新しく作成された投稿を表示
'future', // 予約公開設定された投稿を表示
'private', // ログインしていないユーザーには見えない投稿を表示
'inherit', // リビジョンを表示
'trash', // ゴミ箱に入った投稿を表示
),
'post_status' => 'any', // すべてのステータスを表示(投稿タイプで'exclude_from_search'がtrueにセットされたものを除く)
// ページ送りパラメーターを設定する場合
'posts_per_page' => 10, // 1ページあたりに表示する投稿数を指定(-1を指定するとすべての投稿を表示)
'posts_per_archive_page' => 10, // 1ページあたりに表示する投稿数(アーカイブページのみ)
'nopaging' => false, // ページ送りを使用するか、すべての投稿を表示するか、(デフォルトはfalseでページ送りを使用)
'paged' => 6, // ページ番号6の記事を表示
'paged' => get_query_var('paged'), // 現在のページから投稿を表示
'offset' => 3, // 設定した数だけ、ずらして表示(例では4番目の投稿から表示)
'ignore_sticky_posts' => false, // 先頭固定表示投稿を無視するかどうか(デフォルト値は0で先頭固定表示投稿を無視しない)
// 「投稿の並び順」を指定する場合
'order' => 'DESC', // 'ASC' 昇順 (1, 2, 3; a, b, c)
// 'DESC' 降順 (3, 2, 1; c, b, a)
'orderby' => 'date', // デフォルト値'date' 複数のオプションを渡すことが可能
// 例:'orderby' => 'menu_order title'
// その他のオプション
// 'none' 並び替えなし
// 'ID' 投稿IDで並び替え
// 'author' 著者で並び替え
// 'title' タイトルで並び替え
// 'name' Order by post name(post slug)
// 'modified' 更新日で並び替え
// 'parent' 親ページIDで並び替え
// 'rand' ランダム順
// 'comment_count' コメント数で並び替え
// 'menu_order' ページの表示順で並び替え
// 'meta_value' アルファベット順で並び替え(数値ではうまくいかない)
// 'meta_value_num' 数値で並び替え
// 'post__in' post__inで配列で指定された投稿IDの並び順を維持して表示
// 特定の「時間や日付の期間」に関連付けられた投稿を表示する場合
'year' => 2015, // 4桁の年を数字で指定(2015など)
'monthnum' => 4, // 月を数字で指定(1~12)
'w' => 25, // 年内の週を数字で指定(0~53)
'day' => 17, // 月内の日を数字で指定(1~31)
'hour' => 13, // 時間を数字で指定( 0~23 )
'minute' => 19, // 分を数字で指定(0~60)
'second' => 30, // 秒を数字で指定(0~60)
'm' => 201404, // 年と月を数字で指定 (201508など)
// 「○年○月○日から○年○月○日の範囲の投稿情報」を表示する場合(投稿日の検索が自由自在!)
'date_query' => array(
array(
'year' => 2015, // 4桁の年を数字で指定(2015など)
'month' => 8 // 月を数字で指定(1~12)
'week' => 31 // 年内の週を数字で指定(0~53)
'day' => 5 // 月内の日を数字で指定(1~31)
'hour' => 2 // 時間を数字で指定( 0~23 )
'minute' => 3 // 分を数字で指定(0~60)
'second' => 36 // 秒を数字で指定(0~60)
'after' => 'January 1st, 2013', // 指定した日付以降の投稿を取得。strtotime()と互換性のある文字列で'after'=>'2015/08/31'などでもOK
'before' => array( //指定した日付以前の投稿を取得。strtotime()と互換性のある文字列で'before'=>'2015/08/31'などでもOK
'year' => 2013, // 4桁の年を数字で指定(2015など) デフォルトは空
'month' => 2, // 年内の月を数字で指定(1~12) デフォルトは12
'day' => 28, // 月内の日を数字で指定(1~31) デフォルトは月内の末日
),
'inclusive' => true, //「after」または「before」パラメーターで指定された値を含むかどうか
'compare' => '=', // 使用可能な値は '=', '!=', '>', '>=', '<', '<=', 'LIKE', 'NOT LIKE', 'IN', 'NOT IN', 'BETWEEN', 'NOT BETWEEN', 'EXISTS', and 'NOT EXISTS'
'column' => 'post_date', // 照会するカラムを指定。デフォルトは「post_date」
'relation' => 'AND', // OR または AND デフォルトは「AND」
),
),
// 特定の「カスタムフィールド」に関連付けられた投稿を表示する場合
'meta_key' => 'key', // カスタムフィールドのキーを指定
'meta_value' => 'value', // カスタムフィールドの値を指定
'meta_value_num' => 10, // カスタムフィールドの値を指定
'meta_compare' => '=', //「meta_value」をテストする演算子。使える値は'!='、'>'、'>='、'<'、'=' デフォルト値は'='
'meta_query' => array( //カスタムフィールドパラメーター
'relation' => 'AND', // 「AND」または「OR」を指定。meta_query内の配列が「2つ以上」の場合に限る。meta_query配列が1つの場合は使用しない。
array(
'key' => 'color', // カスタムフィールドのキー。
'value' => 'blue', // カスタムフィールドの値 (注意 compareの値が'IN'、'NOT IN'、'BETWEEN'、'NOT BETWEEN'のみ配列をサポート)
'type' => 'CHAR', // カスタムフィールドタイプ。タイプについては以下の「meta_queryで使えるデータ型」参照
'compare' => '=', // 演算子を指定 デフォルト値は'=' 演算子の種類については以下「meta_queryで指定できる演算子の種類」参照
),
array(
'key' => 'price',
'value' => array(1,200),
'compare' => 'NOT LIKE',
)
),
// 適切な権限を持っているユーザーのプライベートの記事を表示する場合
'perm' => 'readable' // 使える値は’readable’と’editable’
// キャッシュ系のパラメーター
'cache_results' => true, // 投稿情報をキャッシュするかどうか デフォルトはtrue
'update_post_term_cache' => true, // 投稿タームキャッシュを更新するかどうか デフォルトはtrue
'update_post_meta_cache' => true, // 投稿メタキャッシュを更新するかどうか デフォルトはtrue
'no_found_rows' => false, // カウントをスキップする? tureでパフォーマンスが向上する可能性があるかも デフォルトはfalse
// 検索系のパラメーター
's' => $s, // 検索からクエリーストリング値を渡します。
'exact' => true, //タイトル/投稿の全体から正確なキーワードで検索するか デフォルト値はfalse
'sentence' => true, //語句(フレーズ検索)で検索するか デフォルト値はfalse
// 投稿フィールドパラメーター
'fields' => 'ids' //1つのフィールドで返すか全てのフィールドで返すか デフォルトでは全てのフィールドが返される
// 使用できる値
// 'ids' 投稿のIDの配列を返します
// 'id=>parent' 連想配列を返します
);
$the_query = new WP_Query($args);
if ($the_query->have_posts()):
while ($the_query->have_posts()): $the_query->the_post();
// 何かしらの処理
endwhile;
endif;
// 投稿データのリセット
wp_reset_query();
?>
| データ型 | 内容 |
|---|---|
| CHAR | 文字 |
| NUMERIC | ‘SIGNED’の別名 |
| DECIMAL | 浮動小数点数 |
| SIGNED | 整数(符号あり) |
| UNSIGNED | 整数(符号なし) |
| DATE | 日付 |
| DATETIME | 日時 |
| TIME | 時刻 |
| BINARY | バイナリー |
| 比較演算子 | 内容 |
|---|---|
| = | 値と一致する |
| != | 値と一致しない |
| > | 値より大きい |
| >= | 値以上 |
| < | 値より小さい |
| <= | 値以下 |
| LIKE | 値で指定した文字列に一致する場合 |
| NOT LIKE | 値で指定した文字列に一致しない場合 |
| IN | 値(配列)で指定した何れかに一致する場合 |
| NOT IN | 値(配列)で指定した何れかにも一致しない場合 |
| BETWEEN | 2つの値で指定した範囲内(境界を含む)場合 |
| NOT BETWEEN | 2つの値で指定した範囲外の場合 |
この書籍の中で、ライティングのユーザビリティについて触れている項目があり、激しく共感する部分だったので、ここで備忘録としてピックアップする。 ・・・
この書籍は、I部 リサーチ、II部 デザイン、III部 インプリメンテーションと三部構成になっている。この記事では、その中から、I部 リサーチ、・・・
これを知ったときはマジか!と飛び跳ねた。あらためて思い返してみると、確かに公式チュートリアルでも触れていたことをうっすら思い出す。そしてそのときとやり方がなん・・・
試したことはまだないけど、Macで編集時と書き出し後で色味が変わって困ったときのために備忘録。 プロジェクト設定 > 「カラーマネジメント・・・
プロジェクト設定と環境設定について詳しく解説されている情報がなかなか見つからないので、要所要所で知り得た情報を更新していきます。 プロジェクト設定 ・・・
Clipyが超絶便利そうだったので、macOS Big Sur にインストール&再起動して使ってみた。ところが、command + c を複数の箇所で行い、c・・・
requestAnimationFrame をはじめて見たので調べていたら、setTimeout や setInterval は requestAnimati・・・
6年ぶりに読み返したが、今なおハッとさせられることが多く見つかる。 この本で忘れないようにしたい項目をピックアップするだけでも役に立ちそ・・・
この記事では、以前に読んだ際に付箋を付けていたが、その部分だけを備忘録としてピックアップするため、本の要約ではない。実際は、何倍も濃い内容で、練・・・
もう一回、全部読み返したいところだが、書籍がありすぎるので、当時付箋紙をつけていたところだけをピックアップ。書籍内ではより具体的な説明があるので・・・
変数bnにphpファイルのファイル名を拡張子なしで取得するサンプル $bn = basename($_SERVER['PHP_SELF'], ".php");・・・
sassファイルを保存すると、cssファイルが自動生成されるという症状でしばらくの間、ストレスだったがようやく解決。 例えば、var.scssを修正して保存す・・・
記述方法は間違いないのに、文字化けしてしまう。 xhtmlはutf-8で宣言していたのだが、Javascriptで記述された日本語がブラウザで確認すると文字化け・・・
変数bnにhtmlファイルのファイル名を拡張子なしで取得するサンプル var bn = location.href.split("/"); bn = bn[b・・・
ローカル環境はMAMPを使いました。 データベースを作成する MAMPを起動し、「サーバを起動」後、「オープンWebStartの」をクリックします。 「ツ・・・
xhtmlソース <div> <ul><!-- --><li><img alt="navi1" />・・・
Webサイトに動画を利用する際には、2017年8月時点では、webmとmp4とどちらにも対応していない場合の静止画像を用意して置くことにしている。 動画を違う拡・・・
正しいCSSを記述しているにもかかわらず、表示が崩れることがある。ブラウザによる解釈の違い(バグ)が原因であるが、IE5や古いブラウザにバグが見られる。・・・
iBook G4(OS10.3.x)がある。Safariのバージョンは、1.xだ。2は10.4にしないと使えない。もっと詳しく言えば、10.4.10以下でないと・・・
ブラウザ、モバイルファースト、メディアクエリー、マルチ画面、タブレット・・・ 想定すべき画面サイズ、利用シーンに適した情報のコントロールが崩壊しつつある。 とい・・・
「test」
「>ころころさん コメントありがとうございます! 確かに、APIドキュメント見ましたが、ライブに関する情報は今のところ取得できないようですね。 インスタライ・・・」
「SIGMAから超軽量で明るい単焦点レンズが2本発売になりましたので、リストにレンズ情報追加しました!」
「>名無しさん ご指摘、ありがとうございます! 記事冒頭の「まずはサンプル」のサンプルが動いていませんでしたので修正しました。」
「>前田さん コメントありがとうございます。 環境は分かりかねますが、修正したいファイルのパーミッションを604や644に変更すると書き込みできるようになります(・・・」
「アバターを取得する「get_avatar」についても追記しました!」
「「値をクリアする」を追加しました。チェックボックスやラジオボタンの値を何も選択していない状態に戻すときについて触れています。」
「>匿名さん コメントありがとうございます。 サンプルでは、beforeは何も処理していないので期待する表示にならない、で正解です。 クリックした後が、対応・・・」
「(匿名)さん コメントありがとうございます。何も設定変更していないのに、それまで使用できていたサーバーが突然使えなくなるのは辛いですよね、、。 ここで紹介したや・・・」
「コメントありがとうございます! そもそもできるかはわかりませんが、ソースを書き換える必要はあります。 下記記事などが参考になるかもしれません。 illustra・・・」