2011-04-06 2 views
0

사용자가 선택한 카테고리에 따라 Wordpress에서 single.php에 대한 여러 레이아웃을 만듭니다. 나는 이것을 두 범주로 보았으며 과거에도 그렇게 해왔다. 하지만 두 개 이상의 사용자 정의 single.php 파일로 시도하지 않았습니다. 꽤 똑바로 보인다. single.php 파일에 사용자를 적절한 템플릿으로 리디렉션하는 if 문을 만들었습니다. 그러나 빈 페이지가 나타납니다. single.php 파일 내 코드는 다음과 같습니다.Wordpress에서 여러 개의 single.php 카테고리 ID를 기반으로

<?php 
$post = $wp_query->post; 

if (in_category('12')) { 
include(TEMPLATEPATH . '/single12.php'); 
} 

elseif (in_category('3')) { 
include(TEMPLATEPATH . '/single3.php'); 
} 

elseif (in_category('1') { 
include(TEMPLATEPATH . '/single1.php'); 
} 

else { 
include(TEMPLATEPATH . '/single-default.php'); 
} 

?> 

답변

-1

글로벌 wp_query를 선언 했습니까? 당신은 당신이 빈 페이지를 seing하고 왜 그렇게 그건 해제 오류보고, 그래서 시도 할 수 있습니다 :

당신은 테스트하지 다음 코드를 (사용할 수 있지만, 내가 더 나은 무엇을 의미하는지 설명해야 더 나은 연습으로
global $wp_query; 
$post = ... 

힘든 사례) :

global $wp_query; 
$post = $wp_query->post; 
$categoryes = get_the_category($post->ID); 
if (count($categoryes) > 0) 
{ 
    $disalowedCategories = array(4,6,8); // these categories should use single-default.php 
    $category = $categoryes[0]; 
    $templateFile = TEMPLATEPATH . '/single' . $category->cat_ID . '.php'; 

    if (file_exists($templateFile) && !in_array($category->cat_ID, $disalowedCategories)) 
    { 
     include($templateFile); 
    } else { 
     include(TEMPLATEPATH . '/single-default.php'); 
    } 
} 
관련 문제