この記事は2年以上前に書かれた記事です。現状にそぐわないかもなのでご注意を。

[WP] カテゴリー毎に詳細画面用テンプレートを別ファイルにする

カテゴリー一覧用のテンプレートは、

デフォルトテンプレート:category.php
(カテゴリーID)用のテンプレート:category-(カテゴリーID).php

とする事で、カテゴリー毎に違うテンプレートファイルを読込んでくれます。

では、詳細画面用のテンプレートでは・・・?

single.php に if文で

<?php if (in_category('1')): ?>
(カテゴリー1用のソース)
<?php elseif (in_category('2')): ?>
(カテゴリー2用のソース)
<?php else: ?>
(その他のカテゴリー用のソース)
<?php endif; ?>

とする事で表示をカスタマイズできますが、カテゴリー一覧画面のように別ファイルで分けてしまった方がスッキリします。
そんな場合はこれ。

<?php
 $post = $wp_query->post;
 if ( in_category('1') ) {
 include(TEMPLATEPATH . '/single-1.php');
 } elseif ( in_category('2') ) {
 include(TEMPLATEPATH . '/single-2.php');
 } else {
 include(TEMPLATEPATH . '/single-0.php');
 }
 ?>

こうする事で、

カテゴリ−1の記事:single-1.php
カテゴリ−2の記事:single-2.php
その他の記事:single-0.php

と、記事の属するカテゴリーによって読込むテンプレートファイルを分割する事ができます。

尚、ヘッダーやフッターを読込むタグは、通常は

<?php get_header();??>
<?php get_footer();??>

ですが、別に設定したヘッダー/フッターを読込みたい場合は、

<?php include (TEMPLATEPATH . '/header2.php');??>
<?php include (TEMPLATEPATH . '/footer2.php');??>

とします。

ちなみにサイドバーの場合はもっと簡単で、

通常(sidebar.php)

<?php get_sidebar();??>

sidebar-2.phpを読込む場合

<?php get_sidebar('2'); ?>

となります。

ヘッダー/フッターはサイドバー形式、
カテゴリー詳細は、カテゴリー一覧形式で
テンプレートファイルを切り分けてくれると、管理が楽になるんですけどね。

スポンサーリンク