WordPressで特定のタグがついたページだけに表示させる条件分岐「has_tag」

WordPressで特定のタグがついたページだけに表示させる条件分岐「has_tag」

WordPressでは特定のページだけ表示させたいものがあった場合、様々な条件に応じて分岐させることができます。

特定のページにだけ表示させたいものがあった場合、「タグ」を使って分岐させると便利です。

タグに応じて表示するかどうかを切り分ける

タグを使った条件分岐で得られるメリットとしては「カテゴリに縛られない」という点です。

例えば「告知」というタグを用意して様々なカテゴリにある告知関連の記事にタグを付け、「告知タグが付いたページにだけ申し込みフォームを付ける」といったことが可能です。

他にも「css」タグが付いた記事にはWEB制作系の本の広告を貼る、といったことも可能なので、手動で広告を振り分けることもできます。(実際やろうとすると結構めんどくさそうですが…。)

記事内にPHPを書くことができないため(ショートコード使えば可能?)、テンプレートファイル内に設置することになるので設置場所はある程度限定されますけどね。

基本的には昨日ご紹介した「in_category」のときと書き方は変わらないので、記述例をいくつか羅列するだけに留めておきます。

また、記述例はすべて「タグのスラッグ」を入れたものです。もしかしたらスラッグが日本語だとうまく行かないかもしれないです。(日本語のスラッグでは試してません。)

例1「css」タグが付いているページにのみ表示

<?php if ( has_tag( 'css' ) ): ?>
「css」というタグのページにのみ表示
<?php endif; ?>

例2「css」「html」タグが付いているページにのみ表示

<?php if ( has_tag( array( 'css', 'html' ) ) ): ?>
「css」と「html」というタグのページにのみ表示
<?php endif; ?>

例3「css」タグのページにはAを、「iphone, ipad」タグのページにはBを表示

<?php if ( has_tag( 'css' ) ): ?>
「A」を表示
<?php elseif ( has_tag( array( 'iphone', 'ipad' ) ) ): ?>
「B」を表示
<?php endif; ?>

例4「css」タグのページにはA、「iphone」タグのページにはB、それ以外にはCを表示

<?php if ( has_tag( 'css' ) ): ?>
「A」を表示
<?php elseif ( has_tag( 'iphone' ) ): ?>
「B」を表示
<?php else: ?>
「C」を表示
<?php endif; ?>

最後に

PHPが苦手という方でもコピペで十分使えますし、ちょろっとカスタマイズするくらいなら簡単にできるんじゃないでしょうか。

他にもこれまでにいくつか条件分岐について記事を書いてますのでよろしければあわせてご覧ください。

キーワード
WordPress