この記事のポイント
- is_category() とin_category() 一文字だけ違う2つの関数ってどうなの?
- 調べてみてもなんとなく分かった?感じだったので、ものくろぼっくすのカテゴリーで実際に調べてみた
- カテゴリーの記事一覧ページ(カテゴリーアーカイプ)は「is_category()」/ カテゴリーに含まれる個別記事はin_category() ということが分かった
違いが分からなかった!
こちらの記事で、WordPressのカテゴリーIDで処理を分岐させました。そこで使ったのが、is_category() とin_category()の2つ関数です。
[箱] 手作業なく簡単・一括に!2つ以上の複数カテゴリー”記事”をGoogleさん インデックス不許可 “noindex”の設定方法 | [箱]ものくろぼっくす
実は違いを理解するのに、だいぶ悩みました。そんな悩むことは ものくろ だけで十分だと思います。やっと分かったのでここにまとめました。
isとin の違い?”WordPress Codex”で調べた
2つの関数の名前を見ると、 isとin が違います。1文字だけ違います。ややこしい。
困ったときの”WordPress Codex”を見てました。
関数リファレンス/is category – WordPress Codex 日本語版
この条件分岐タグは、カテゴリーアーカイブが表示されているかチェックします。
テンプレートタグ/in category – WordPress Codex 日本語版
現在の投稿(あるいは指定した任意の投稿) に指定したカテゴリーが割り当てられているか調べます。
isはカテゴリーアーカイブを、inは現在の投稿(あるいは指定した任意の投稿) が、調べようとするカテゴリーかどうか?をチェックします。
分かったような?なんとなくまだモヤモヤしています。なので、実際に試してみました。
ものくろぼっくすの『ものレポ』カテゴリーを例にして考えた
ものレポで、2つの関数の結果がどうなるのか?試してました。『ものレポ』のカテゴリーIDは”2637”です。
アーカイブがキーワードのis_category(2637)は、この(https://mono96.jp/?cat=2637 )カテゴリーアーカイプ(カテゴリーの一覧ページ)のみがヒットします。カテゴリー内にある記事は無視されます。
一方、in_category(2637)では、『ものレポ』の中にある個別記事がヒットします。カテゴリー記事数が100なら、100記事がヒットします。2013年10月3日現在 『ものレポ』は5記事です。つまり、in_category(2637)では、[箱] 【ものレポ】チェキ instax mini 90 が凄くいい感じ、そして続けることの大切さを知りました。など をはじめ、カテゴリーに含まれる5記事そのものがヒットします。
一つ注意があります。in_category() だけだと、トップページも含む検索結果になります。上の5つの記事をきちんと取り出すには『&& is_single()』を使って、個別記事だけという条件をつけるようにしてください。詳しくは2つのリンクをご覧ください。
関数リファレンス/is single – WordPress Codex 日本語版
ものくろ はこう思った
WordPress関数のis_category() とin_category()
名前が似ている2つです。なかなか違いが分かりませんでした。実際に試してみたら、結果がまったく違うことが分かりました。なので、使い方も違うし、2つ関数が用意されていることが理解できました。
カテゴリーの記事一覧ページ(カテゴリーアーカイプ)を取り出すには「is_category()」をカテゴリーに含まれる個別記事を取り出すにはin_category() になります。
in_category() && is_single() どちらもTRUEでないといけない論理演算子を使って、トップページを除くようにするのがポイントです。
これらを使うことで、[箱] 手作業なく簡単・一括に!2つ以上の複数カテゴリー”記事”をGoogleさん インデックス不許可 “noindex”の設定方法は簡単に多くの記事を一括でmateタグを追加できています。
本当に便利です。