この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 テンプレートを各カテゴリ等で別々に使い分ける

面白かったですか?

関連する記事

  1. ifーelseifーendif構文 シングルページで使ったのが、こちら。 本当は、in_categoryひとつだけで済ましたかったが、括弧内に複数指定する方法がわからず、elseifを使った。 実際に使ったのが、こちら。 <?php if (in_c [...]...
  2. WordPressループの基本形 phpの基本がまだ危うい私には、こういう基本的なループで作業が止まってしまうんです。 だから、ここでひとまず整理しておきます。 WordPressループの基本形は、 *************************** [...]...