このWordPressカテゴリーの詳細ページの文頭に、
◎※このページは個人的な備忘録です。
という文章を自動的に挿入させるために、single.phpをどう編集すればいいか、大変悩みました。
そこで小一時間ほどネットで調べてみると、
<?php if (in_category(‘カテゴリーIDまたはスラッグ’) ): ?>
を使えばいいことが判明。
つまり、
*********************************
<?php if (in_category(‘特別なページにしたいカテゴリーIDまたはスラッグ’) ): ?>
<p>特別なページ内容</p>
<?php else: ?>
そのカテゴリー以外のページ内容
<?php endif; ?>
【シングルページで、カテゴリ毎に表示内容を変える方法(ループの中で使う)】
※この例では、カテゴリー番号6と7のもの,8のもの、その他カテゴリーとは別の表示内容にしています。
<?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; ?>
**********************************
という風にすればいい。
さらに、
********************************
【カテゴリー毎にテンプレートファイルを使い分ける方法】
※この場合は、カテゴリー番号17にはsingle2.phpを使い、17以外のカテゴリーにはsingle1.phpを使うようにしている。
<?php
if ( in_category('17') ) {
include(TEMPLATEPATH . '/single2.php');
} else {
include(TEMPLATEPATH . '/single1.php');
}
; ?>
※ただし、この場合はsingle.phpのループ内にこのテンプレートタグを入れて、新たに導入されるphpデータでは、single.phpのループ外(ループのコードを含む)を削除する必要がある。
**********************************
この方法を使うと、別内容にするカテゴリー番号・新たに導入するデータの名前を変えるだけで、簡単に内容を変更できる。
私が悩んだのは、
<?php if (is_category(‘カテゴリーIDまたはスラッグ’) ): ?>
にしていたから。
この浪費した時間を、これから取り戻さなければ・・・
<参考になったページ>
WordPress テンプレートを各カテゴリ等で別々に使い分ける
関連する記事
- ifーelseifーendif構文 シングルページで使ったのが、こちら。 本当は、in_categoryひとつだけで済ましたかったが、括弧内に複数指定する方法がわからず、elseifを使った。 実際に使ったのが、こちら。 <?php if (in_c [...]...
- WordPressループの基本形 phpの基本がまだ危うい私には、こういう基本的なループで作業が止まってしまうんです。 だから、ここでひとまず整理しておきます。 WordPressループの基本形は、 *************************** [...]...
