WordPressでカテゴリごとに投稿のデザインを変える

カテゴリごとにテンプレートを変える

キャプチャこれは今までもやっていたことなので、新しいことではありません。デフォルトは「category.php」ですが、特定のカテゴリ専用のカテゴリテンプレートのファイル名には「category-8.php」のように、ハイフンとカテゴリIDの数字をつけて保存するだけです。

カテゴリに属する投稿(shingle.php)のデザインを変える。

これが新しい発見です。以前はCustom Post Templatesというプラグインを使っていましたが、これでやるとktai-styleでテンプレートを変えた記事を表示した場合、パソコンの画面が表示されてしまいレイアウトが崩れてしまいます。せっかくのktai-styleもこれじゃあ残念な感じです。Wordpressのフォーラムに問い合わせて解決を図ったこともありましたが、「何をどうやったのかちゃんと書け」と怒られてしまい終了。でも、今日偶然にも別の方法を用いて解決することができました。
別の方法とは Custom Post Templates に頼るのではなく、カテゴリによってテーマを切り替える方法です。Custom Post Templatesは自由にテンプレートを設定できるメリットがありますが、子育て記事なら子育て記事用のテンプレートとだいたい決まっているものですから、カテゴリに応じてテンプレートが設定されるということでも支障はありません。この方法には特別なプラグインは必要ありません。

まず、デフォルトのshingle.phpをshingle1.phpやshingle-sonota.phpなどにリネームして保存します。
そして、shingle.phpには下記のように記事を振り分けるコードのみを残します。

<?php
 $post = $wp_query->post;
 if ( in_category('8') ) {
 include(TEMPLATEPATH . '/single8.php');
 } elseif ( in_category('14') ) {
 include(TEMPLATEPATH . '/single14.php');
 } else {
 include(TEMPLATEPATH . '/single-sonota.php');
 }
 ?>

あとは、shingle1.phpなどを好きなようにアレンジしてしまえばOKです。ちなみに、上のコードでは、カテゴリ8の記事はshingle8.phpを表示し、カテゴリ14はshingle14.phpを表示、その他はshingle-sonota.phpを表示するという命令です。elseifで条件を増やせばなんぼでもできます。これで携帯電話からの閲覧でも型崩れすることなくできるので、さらにサイト作りの幅が広がります。

スポンサーリンク
スポンサーリンク

シェアする

フォローする

スポンサーリンク
スポンサーリンク