投稿によってテンプレートを変更する。

ワードプレスで、投稿によってテンプレートを変えたい!という時にどうすればいいのか。
固定ページだったらページを増やせばいいのですが、
投稿の時のやり方まとめ。

カテゴリごとにテンプレートを変える!!
検索したところ、この方法が一番出てきました。

カテゴリーによってテンプレートを変える時は、
・カテゴリー1
・カテゴリー2
・その他
があったとすると、
まずsingle.phpをコピーして、カテゴリー1、カテゴリー2用のsingle.php、その他用のsingle.phpを作ります。
・single_cat1.php
・single_cat2.php
・single-blog.php
みたいに。

次に、single.phpの一番最初に
[cpp]<?php if ( in_category(‘カテゴリー1のカテゴリーID’) ) {
include(TEMPLATEPATH . ‘/single_cat1.php’);
} else if ( in_category(‘カテゴリー2のカテゴリーID’) ) {
include(TEMPLATEPATH . ‘/single_cat2.php’);
} else {
include(TEMPLATEPATH . ‘/single-blog.php’);
}
?>[/cpp]
を、書きます。

これでアップロードして、カテゴリごとにテンプレートが変わってたら大成功!

他にも難しい書き方・・・
カテゴリーでテンプレを変えたい投稿が沢山あって面倒!
だとこういう風にも出来るそうです。
[cpp]
<?php
$post = $wp_query->post;
$category = get_the_category( $post->ID );
$cat = $category[0];
while ( $cat->parent > 0 )
$cat = get_category( $cat->parent );
$cat_temps = array(
‘1’ => ‘single_category1’,
‘2’ => ‘single_category2’,
‘3’ => ‘single_category3’,
‘4’ => ‘single_category4’,
);

if( isset( $cat_temps[$cat->term_id] ) )
include(TEMPLATEPATH . ‘/’ . $cat_temps[$cat->term_id] . ‘.php’);
else
include(TEMPLATEPATH . ‘/single_blog.php’);
?>
[/cpp]

これだとカテゴリーを増やす時に楽ちんかもですね。

参考
カテゴリーごとにテンプレートを変える|WordPress フォーラム
WordPress 投稿のカテゴリーによってテンプレートを変更|Wordpress・Premire・Aftereffects備忘録

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください