サポート » 使い方全般 » single.phpの条件分岐の方法を教えて下さい。

  • 色々と試してみましたがどうしても思うように動かないので、
    どなたかお教え頂ければ幸いです。

    【やりたい事】
    現在、不動産プラグインを使っているのですが、下記、サンプルコードを利用して
    テンプレートをカテゴリ毎それぞれ4つに振り分けたいです。

    *振り分けたいIDと振り分けたいテンプレートは以下の通りです。
    ID:2→single-fudochintai.php
    ID:3→single-fudobaibai.php
    ID:4→single-fudotoshi.php
    その他→single.php

    ———————————————————————-

    /*
     * 物件詳細テンプレート切替オリジナル
     * 例: 物件カテゴリ 5,8 だけ別のテンプレート(single-fudo2.php)を使用する。
    */
    
    //物件詳細テンプレート切替キャンセル
    remove_filter('template_include', 'get_post_type_single_template');
    
    //新しい 物件詳細テンプレート切替
    function get_post_type_single_template_org($template = '') {
    	global $wp_query;
    
    	$tax_array = array( '5', '8' );	//切り替えるカテゴリID
    	$object = $wp_query->get_queried_object();
    
    	if( !empty( $object->post_type ) ){
    		if($object->post_type == 'fudo'){
    			if ( has_term($tax_array,'bukken') ) {
    				$template = locate_template(array('single-fudo2.php', 'single-fudo.php')); //使用しているテーマのフォルダに設置
    			}else{
    				$template = locate_template(array('../../plugins/fudou/themes/single-fudo.php', 'single-fudo.php')); //不動産プラグインオリジナル
    			}
    		}
    	}
    	return $template;
    }
    add_filter('template_include', 'get_post_type_single_template_org');

    ———————————————————————-

    以上、宜しくお願い致します。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • Codexを見るともう少し単純になりそうな気がしますが、すでにご覧になったでしょうか。

    http://codex.wordpress.org/Plugin_API/Filter_Reference/template_include

    上記で、Exampleの
    if ( is_page( ‘portfolio’ ) ) {
    というところの条件をお望みの形に変えてあげれば、
    お望みの結果が得られそうな気がします。

    ヒントになれば・・・

    スレッド開始 yuuno

    (@yuuno)

    yah!!様

    ご返信ありがとうございます。
    教えて頂いたページを読んでみたのですが、うまくいきませんでした。

    add_filter( 'template_include', 'portfolio_page_template', 99 );
    
    function portfolio_page_template( $template ) {
    if( !empty( $object->post_type ) ){
         if($object->post_type == 'fudo')
    
    if ( $tarmid = 'baibai-bukken')  {
    $tarms = get_the_terms(  $post -> ID ,'bukken' ); //切り替えるカテゴリID
    
    foreach ( $tarms as $tarm ) {
    			$tarmid = $tarm -> slug;
    
    var_dump( $tarmid );
    if ( $tarmid = 'baibai-bukken')  {
    $new_template = locate_template(array('single-fudobaibai.php', 'single-fudo.php')); 
    
    }
    elseif ( $tarmid = 'chintai-bukken')  {
    $new_template = locate_template(array('single-fudochintai.php', 'single-fudo.php'));
    }
    else{
    $new_template = locate_template(array('single-fudotoshi.php', 'single-fudo.php'));
    }
    }}}
    			return $template ;
    		}

    もう少しチャレンジしてみようと思いますが、何かお分かりになれば、ご教授頂けますと幸いです。

    スレッド開始 yuuno

    (@yuuno)

    yah!!様

    ご返信ありがとうございます。
    教えて頂いたページを読んでみたのですが、うまくいきませんでした。

    add_filter( 'template_include', 'portfolio_page_template', 99 );
    
    function portfolio_page_template( $template ) {
    if( !empty( $object->post_type ) ){
         if($object->post_type == 'fudo')
    
    if ( $tarmid = 'baibai-bukken')  {
    $tarms = get_the_terms(  $post -> ID ,'bukken' ); //切り替えるカテゴリID
    
    foreach ( $tarms as $tarm ) {
    			$tarmid = $tarm -> slug;
    
    var_dump( $tarmid );
    if ( $tarmid = 'baibai-bukken')  {
    $new_template = locate_template(array('single-fudobaibai.php', 'single-fudo.php')); 
    
    }
    elseif ( $tarmid = 'chintai-bukken')  {
    $new_template = locate_template(array('single-fudochintai.php', 'single-fudo.php'));
    }
    else{
    $new_template = locate_template(array('single-fudotoshi.php', 'single-fudo.php'));
    }
    }}}
    			return $template ;
    		}

    もう少しチャレンジしてみようと思いますが、何かお分かりになれば、ご教授頂けますと幸いです。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「single.phpの条件分岐の方法を教えて下さい。」には新たに返信することはできません。