記事のカテゴリとタグで表示を出し分けるWordPressテンプレートタグ in_category, has_tag

アドセンスやアイキャッチなど、投稿するタイプによって表示を出し分けたい場合があります。
WordPressのテンプレートタグを使えば、特定のタグを付けた投稿は非表示にして、それ以外では表示するという「条件分岐」をすることができます。

sponsored link

カテゴリによって条件分岐をする

カテゴリによって条件分岐をしたい場合はin_categoryというテンプレートタグを使います。

特定のカテゴリだけで表示したい場合。

特定のカテゴリで非表示、それ以外のタグで表示したい場合。

複数のカテゴリで非表示、それ以外のタグで表示したい場合。

この中で出てくる「スラッグ」は管理画面の[投稿][タグ]にあるスラッグです。
スラッグは管理画面から確認する

似たテンプレートタグにis categoryもありますが、こちらはカテゴリのアーカイブページが表示されているかという意味になるので注意しましょう。in_categoryはそのカテゴリの投稿ページが表示されていたらという意味になります。

タグによって条件分岐をする

タグによって条件分岐をしたい場合はhas_tagというテンプレートタグを使います。

特定のタグだけで表示したい場合。

特定のタグで非表示、それ以外のタグで表示したい場合。

複数のタグで非表示、それ以外のタグで表示したい場合。

似たテンプレートタグにis tagもありますが、こちらはタグのアーカイブページが表示されているかという意味になるので注意しましょう。has_tagはそのタグの投稿ページが表示されていたらという意味になります。

in_categoryhas_tagは関数こそ違いますが、使い方や使う場面は同じですね。


僕の場合は特定の投稿だけアイキャッチ画像を非表示にしたいと思って調べていました。
レイアウトをガラッと変えたり、アドセンスなどの広告を出し分けたり使える場面は多いと思います。

今回参考にさせてもらったのはWebデザインレシピさん。ここがいちばん分かりやすくまとめられていました。