私はいくつかのコードに対して私の頭を粉砕しています。ここに状況があります:私は3つの異なるカテゴリーに一つの記事を持っています、この記事はsingle1.phpの "category 1"、single2.phpの "category 2"そしてsingle3.phpの "category 3"に見えるはずです。
明らかに3つのsingle.phpページは内部に異なるテンプレートを持っています。例えばsingle1.phpは写真とthe_content()を示しています。 single2.phpは写真とコメントを表示します。 single3.phpはレビューを表示します。
私はsingle.phpで私はif/elseを使用することができることを知っていますが、同じ投稿が3つの異なるカテゴリにあるかどうか私は理解できません。
何か助けてください?
カテゴリ固有にする代わりに、投稿フォーマットを使用してさまざまなコンテンツテンプレートを使用することができます。 single.phpでは、書くことができます
<?php get_template_part( 'content', get_post_format() ); ?>
それから異なる投稿フォーマットを作成してください
add_theme_support( 'post-formats', array( 'withpictures', 'withcomments' ) );
次に、異なる投稿テンプレートcontent-withpictures.php、content-withcomments.phpを作成します。
コンテンツを作成するときは、選択した投稿フォーマットによってテンプレートが決まります。
'single_template'にはフィルタフックを使うことができます。 single-cat1.php、single-cat2.php、single-cat3.phpの作成
function template_change( $template ){
if( is_single() && in_category('cat1') ){
$templates = array("single-cat1.php");
} elseif( is_single() && in_category('cat2') ){
$templates = array("single-cat2.php");
} elseif( is_single() && in_category('cat3') ){
$templates = array("single-cat3.php");
}
$template = locate_template( $templates );
return $template;
}
add_filter( 'single_template', 'template_change' ); //'template_include'/'single_template'
Template-single-cat1.php、header.phpを使用してスタイルシートを変更する必要がある場合は、header.phpで変更できます
<link rel="stylesheet" type="text/css" href="<?php bloginfo('template_url'); ?>/ca1.css">