WordPressのsingleページを属するカテゴリー毎に変更するには?

このWordPressカテゴリーの詳細ページの文頭に、

◎※このページは個人的な備忘録です。

という文章を自動的に挿入させるために、single.phpをどう編集すればいいか、大変悩みました。

そこで小一時間ほどネットで調べてみると、

<?php if (in_category(‘カテゴリーIDまたはスラッグ’) ): ?>

を使えばいいことが判明。

つまり、

*********************************

<?php if (in_category(‘特別なページにしたいカテゴリーIDまたはスラッグ’) ): ?>
<p>特別なページ内容</p>
<?php else: ?>

そのカテゴリー以外のページ内容
<?php endif; ?>

【シングルページで、カテゴリ毎に表示内容を変える方法(ループの中で使う)】
※この例では、カテゴリー番号6と7のもの,8のもの、その他カテゴリーとは別の表示内容にしています。

[php]<?php if (in_category(‘6’) || in_category(‘7)): ?>
<p>(6・7カテゴリーの内容)</p>
<?php elseif (in_category(‘8’) ): ?>
<p>(8カテゴリーの内容)</p)
<?php else: ?>
<p>(その他カテゴリーの内容)</p>
<?php endif; ?>[/php]


**********************************

という風にすればいい。

さらに、

********************************

【カテゴリー毎にテンプレートファイルを使い分ける方法】

※この場合は、カテゴリー番号17にはsingle2.phpを使い、17以外のカテゴリーにはsingle1.phpを使うようにしている。

[php]<?php
if ( in_category(’17’) ) {
include(TEMPLATEPATH . ‘/single2.php’);
} else {
include(TEMPLATEPATH . ‘/single1.php’);
}
; ?>[/php]
※ただし、この場合はsingle.phpのループ内にこのテンプレートタグを入れて、新たに導入されるphpデータでは、single.phpのループ外(ループのコードを含む)を削除する必要がある。

**********************************

この方法を使うと、別内容にするカテゴリー番号・新たに導入するデータの名前を変えるだけで、簡単に内容を変更できる。

私が悩んだのは、

<?php if (is_category(‘カテゴリーIDまたはスラッグ’) ): ?>

にしていたから。

この浪費した時間を、これから取り戻さなければ・・・

<参考になったページ>

WordPress テンプレートを各カテゴリ等で別々に使い分ける

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です