特定のタグを持つ記事のみコンテンツを表示等、処理を分岐させたい

php WordPressのカスタマイズ

WordPressの記事にはカテゴリ、タグ、カスタムフィールドを複数登録することができます。
このタグを持つ記事だけこのバナーを表示させたい!このカテゴリを持つ記事にのみおすすめ記事を表示させたい!
またはデザインをまるっと変えたい、などなど、持っている情報に応じて表示を変えたいケースはよくあると思います。

記事が特定のタグを持っているか判定をするには has_tag() を使用します。

has_tag() で特定のタグを持っているか確認する

<?php if ( has_tag('photo') ): ?>
	<p>この記事はphotoタグを持っています!</p>

<?php else: ?>
	<p>この記事はphotoタグを持っていません!</p>

<?php endif; ?>

これでphotoタグを持つ記事と、持たない記事で表示を切り替えることができます。

has_tag() を使って複数のタグを持っているか確認する

複数のタグを持っているか確認したい場合は、配列を渡してあげます。
AND検索なので、どちらか一方のタグのみ持っていても引っかかりません。

<?php if ( has_tag(['photo', 'illust']) ): ?>
	<p>この記事はphotoタグとillustタグの両方を持っています!</p>

<?php else: ?>
	<p>この記事はphotoタグとillustタグのどちらか持っていないか、両方持っていません!</p>

<?php endif; ?>

特定のタグを持っている場合のみ、headerやfooterを変えたい

この条件分岐を使う場所を変えるだけで様々なカスタマイズができます。
例えばphotoタグを持っている場合、それ専用のheaderを呼び出す、なんてことも可能です。

タグごとに get_header を切り替える

いつもの

<?php 
get_header();
 ?>

photoタグで条件分岐させる

<?php 
if ( has_tag('photo') ):
	get_header('photo'); // header-photo.php が呼び出される
else:
	get_header();
endif; ?>

タグごとに get_footer を切り替える

footerも切り替えられます。

いつもの

<?php 
get_footer();
 ?>

photoタグで条件分岐させる

<?php 
if ( has_tag('photo') ):
	get_footer('photo'); // footer-photo.php が呼び出される
else:
	get_footer();
endif; ?>

php WordPressのカスタマイズ

関連記事