BLOGスタッフブログ

インソースマーケティングデザイン

2015.12.15 コーディング

is_category()とin_category()の違いって何?

マリンロードスタッフブログをご覧いただいている皆様、こんにちは。
フロントエンドエンジニアの虎澤です。

最近寒さが本格的になって、冬を肌で感じられるようになってきましたね。
私は県北(栃木の上の方、福島にほど近い地域)から宇都宮まで電車で通っているのですが、車窓から覗く風景がみるみるうちに変わっていくんですよね。
真冬にもなると、地元に近づくにつれ、景色は雪国に…。
同じ県内なのになんでこんな違うんだ…と毎回思ってしまいます。
そんな景色を楽しむ(?)のも今年で2回目となりました。
月日が経つのは早いものです…。

■is_category()とin_category()の違いって何?

さて、前回の記事に引き続き、wordpressに関するお話です。
前回のthe_*()とget_*()同様、is_category()とin_category()でもつまづく方はいらっしゃるのではないでしょうか。
ご多分に漏れず、私もその一人でした。
それでは、何がどう違うのか、要点を簡単に説明していきましょう。

is_category(‘blog’);
タグの種類:条件分岐タグ
戻り値:tureかfalse
機能:表示されている「アーカイブ」が、引数で指定されたカテゴリかどうかチェックする。
この引数のとき、表示されている「アーカイブ」のカテゴリスラッグが「blog」の場合、trueを返す。
in_category(‘1’);
タグの種類:条件分岐タグ
戻り値:tureかfalse
機能:現在の「投稿(記事)」が、引数で指定されたカテゴリに属しているかどうかをチェックする。
この引数のとき、現在の「投稿(記事)」がカテゴリID「1」に属している場合、trueを返す。
■補足
表示されているページが「アーカイブ」ページであるかどうかをチェックする条件分岐タグに、「is_archive() 」というタグがあります。
これはis_category()とは違い、カテゴリのチェックは行われません。単純に「アーカイブページであるかどうか」をチェックするだけの機能を持ちます。
微妙に似ていて混同されそうなタグですので、注意が必要ですね。

さて、本当にざっくりと説明させていただきましたが、違いがお分かりになりましたでしょうか?

「このページはカテゴリ◯◯のアーカイブページですか?」と尋ねたとき、YesかNoかで返答をくれるのが、is_category()。

「この記事はカテゴリ◯◯に属していますか?」と尋ねたとき、YesかNoかで返答をくれるのが、in_category()。

チェックしている対象が「アーカイブ(まるごと)」なのか「投稿(一部)」なのかの違いですね。

実際に使い分ける場合、archive.phpなどではis_category()、
single.phpではin_category()となります。
archive.phpのようなアーカイブページでもin_category()は使えますが、実装したい機能によっては適切なタグではありません。

名称も1文字違いで、機能も似ている実にややこしいこの2つのタグ。
その機能の違いの要点さえしっかり覚えておけば、いざ使用するケースに遭遇しても、スムーズに作業ができるのではないでしょうか。
こういった細かい知識を着実に身につけていくことが、フロントエンドエンジニアとしてスキルアップするための基本中の基本ですね!
…と、自分自身に言い聞かせて、これからも精進して参ります。笑

以上、虎澤がお送りいたしました^^

インソースマーケティングデザインが書いた他の記事

見積もり・ご依頼など、
お気軽にご相談ください

本サイトはユーザーエクスペリエンスの向上などを目的に、Cookieを使用しています。
右記のバナーで「同意する」をクリックする、または本サイトを利用することにより、
お客様は弊社のCookieポリシーに同意したことになります。

同意します