7月
20
2013

カテゴリのスラッグでテンプレートを振り分けてみるテスト。

WordPress
WordPressのAdvanced Custom Fieldsプラグインを使ってカスタムフィールドの練習をしているのですが、複数のフィールドグループを作ってカテゴリに割り当てた場合、「single.php」で表示処理を振り分けるのはどうやるのかな?と調べてみました。以下、備忘録。
 

 
【前提条件】

  • カテゴリ作成時に、カテゴリ1には「category01」、カテゴリ2には「category02」…とスラッグをつけておく事。
  • フィールドグループは、「field01」と「field02」の2つ作成
  • カテゴリ「category01」「category02」「category03」は「field01」を使用し、表示処理は「single-1.php」に記述
  • カテゴリ「category04」「category05」は「field02」を使用し、表示処理は「single-2.php」に記述
  • 上記以外のカテゴリの表示処理は「single-3.php」に記述
  •  
     
    【作り方】
    「single.php」内の該当部分に以下ノコードを記述

    <?php
    	$post = $wp_query->post;
    	if (in_category('category01')||in_category('category02')||in_category('category03')) {
    		//category01~03用テンプレート
    		get_template_part( 'single','1' );
    	} elseif(in_category('category04')||in_category('category05')) {
    		//category04~05用テンプレート
    		get_template_part( 'single','2' );
    	} else {
    		//上記以外の場合のテンプレート
    		get_template_part( 'single','3' );
    	}
    ?>
    

    最初はフィールドグループにユニークなIDか何か持ってるのかと思っていたのですが、見当たらなかったのでカテゴリのスラッグでやってみました。

    尚、各テンプレート(single-1.php~single-3.php)には、フィールドの値を取得して出力する処理を記述していくのですが、それは別の記事で話題にしていますので、そちらを参照ください。

    》Advanced Custom Fieldsでフィールドの値を取得して出力する5つのパターン。

     
     

     


2024年4月
1234567
891011121314
15161718192021
22232425262728
2930  

Archives

Recommended