[WordPress]カスタム分類の種類を条件分岐に使う

WordPress

カスタム投稿のアーカイブページ(taxonomy.php)の中で、カスタム分類の種類によって分岐させたい時の方法です。

サイト構造の例

例えば、カスタム投稿で「食品」という投稿タイプを作り、その中に「麺」と「調味料」という分類を用意したとします。

期待する動作

タクソノミーのアーカイブページを開いた時、「麺」の分類の時と「調味料」の分類の時で別々の内容を出力したい。
(テキストを出力するとか、バナーを表示させる、などなど)

コード

<?php if (is_tax('noodle')): ?>
これは麺の一覧ページ
<?php elseif (is_tax('seasoner')): ?>
これは調味料のページ
<?php else: ?>
このページはそれ以外だよ
<?php endif; ?>

番外編

最初、is_tax()でスラッグを指定して分岐できるとは知らず、WordPressフォーラムにあった”カスタム分類(スラッグ名)を条件分岐に使い、テンプレート変更させて(以下略”を参考にして、以下のようにしていました。

<?php
 $term_var = get_query_var( 'term' );
 if ( preg_match('/noodle/', $term_var )) {
 echo "これは麺のページ";
 } else {
 echo "これは調味料のページです";
 }
?>

スラッグに”noodle”という文字列が入っている時は麺のアーカイブを表示しているので、麺のページ用の内容を出力し、それ以外は調味料のページの内容を出力しています。でもis_tax()のほうが簡単だし、この方法が役立つケースってあるのかな?

カスタム投稿タイプについては仕事で使うことが増えてきたのですが、まだ出力方法がよく把握できないので、いろいろなパターンを考えて試してみたいです。

コメントを残す