WordPress備忘録

デザイン

デザインに関する備忘録

記事表示ここから

個別記事を属するカテゴリーと同じデザインにする

カテゴリーのトップページだけでなく、個別記事のデザインもカテゴリーと同じデザインを適用しようとした場合にどうすれば良いのか・・・。
個別ページに行った時に、single.phpの中でカテゴリーを調べて該当するページに飛ばせば良い、というのは分かるが「じゃあどういう構文?」と考えたら全然分からない。

諦めかけたがフォーラムでズバリの解決方法を発見。
フォーラム万歳!!
近いものを試したが、 $post=$wp_query->post; というのは知らなかった。これによりテンプレートタグの in_category() が効いてくれて解決。
以下がその手順。

  1. 「single.php」をコピーして「single-base.php」と「single-6.php」というファイルを作成。※コピーした名前は何でも良い
  2. 「single.php」を開いて中身を全て削除。次のスクリプトを入力して保存。全てのファイルをアップロード
PHP:
  1. <?php
  2. $post = $wp_query->post;
  3.  
  4. if(in_category('6')) {
  5.     include(TEMPLATEPATH . '/single-6.php');
  6. } else {
  7.     include(TEMPLATEPATH . '/single-base.php');
  8. }
  9. ?>

以上で、個別記事ページにもカテゴリー毎でのテンプレートが採用される。
あとはカテゴリトップ用の「category-xx.php」と個別記事用の「single-xx.php」のデザインを統一しておけば良い。

記事表示ここまで
リンクここまで

この記事のコメント・トラックバックRSS

コメント

  • カイカイ さんより:
    2009-01-06 12:43:56

    いつも参考にさせていただいております。
    初心者ゆえの質問になりますが、上記single.phpの
    ソースですが、もし複数カテゴリがあり、複数の
    個別ページを設定する場合は、同じような記述を
    繰り返し記入すれば大丈夫でしょうか。

    お恥ずかしい質問ですがご返答いただけると幸い
    です。何卒よろしくお願い致します。

  • ISプランニング さんより:
    2009-01-06 13:09:12

    >カイカイ様
    コメントありがとうございます。
    ご質問の内容ですが、それで良いと思います。


    if(in_category('6')) {
    include(TEMPLATEPATH . '/single-6.php');
    } elseif(in_category('9')) {
    include(TEMPLATEPATH . '/single-9.php');
    } else {
    include(TEMPLATEPATH . '/single-base.php');
    }


    こんな感じになります。

  • カイカイ さんより:
    2009-01-06 15:34:47

    早々にご回答いただき、誠にありがとうございました!!

    おかげで希望通りのサイトができそうです!!
    今後も参考にさせていただきますので、何卒よろし
    くお願い致します。

  • ISプランニング さんより:
    2009-01-06 15:49:43

    >カイカイ様
    お役に立てて何よりです。
    仕事の片手間で気付いた事やハマった事などを書いているので更新頻度は遅いのですが、私と同じようにちょっとした事で悩んでいる方の役に立っていただけると嬉しいです。

    今後とも宜しくお願い致します。

コメント・トラックバック ここまで

トラックバック用URL:

コメントフォーム

コメント入力

コメントフォーム
※管理人にのみ公開されます

記事のリンク先URL:http://www.is-p.cc/wordpress/design/single-design/29

空白
ページのトップに戻る
空白