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またはスラッグ’) ): ?>
にしていたから。
この浪費した時間を、これから取り戻さなければ・・・
<参考になったページ>