2017-08-14 12 views
0

こんにちは、このような仕事があります。 2つのカテゴリがあり、これら2つのカテゴリの投稿についてのみ、1つの投稿テンプレートを使用する必要があります。今私はこのコードを使用しますが、それは適合しません、私はそれぞれのカテゴリのための別のテンプレートを作成する必要があります。 (そして1つのテンプレートが必要です)。カテゴリー別に適用される別々の投稿テンプレートの関数を書く方法は? Wordpress

add_filter('single_template', 'check_for_category_single_template'); 
    function check_for_category_single_template($t){ 
     foreach((array) get_the_category() as $cat){ 
      if (file_exists(TEMPLATEPATH . "/single-category-{$cat->slug}.php")) return TEMPLATEPATH . "/single-category-{$cat->slug}.php"; 
      if($cat->parent){ 
       $cat = get_the_category_by_ID($cat->parent); 
       if (file_exists(TEMPLATEPATH . "/single-category-{$cat->slug}.php")) return TEMPLATEPATH . "/single-category-{$cat->slug}.php"; 
      } 
     } 
     return $t; 
    } 
+0

あなたは例を提供することができます。それが記述されている方法は私のために少し混乱しています。 – Juan

+0

私は2つのカテゴリを持っています。これらのカテゴリの投稿はカスタムテンプレートを作成する必要があります。@ juan –

+0

たとえば、私は3つのカテゴリを持っています:Slides、Pipe、dude。 5つの投稿がSlides、Pipeのカテゴリにあります。 5つの投稿は男のカテゴリにあります。投稿カテゴリスライドの場合、カスタムテンプレートを表示したいパイプ@juan –

答えて

0

この機能は以下の変更を加えれば機能します。

TEMPLATEPATHが既に定義されていると仮定します。

また、スライドとパイプカテゴリにアクセスして、これらの2つのカテゴリのスラッグを取得する必要があります。

「スライド」や「パイプ」と異なる場合は、以下の変更を加えて一致させてください。

作成したテンプレートは、この名前を持つ必要があります:シングルカテゴリslide_or_pipe.php

add_filter('single_template', 'check_for_category_single_template'); 
function check_for_category_single_template($t){ 
     foreach((array) get_the_category() as $cat){ 
      if($cat->slug === 'slides' || $cat->slug === 'pipe'){ 
       if (file_exists(TEMPLATEPATH . "/single-category-slide_or_pipe.php")){ 
        return TEMPLATEPATH . "/single-category-slide_or_pipe.php"; 
       } 
      } 
     } 
     return $t; 
} 
+0

ありがとうございます、私はあなたに書き込んでみます –

+0

ありがとう、それは働いています! –

関連する問題