我正在基于用户选择的类别为Wordpress中的single.php创建多个布局。我已经看到过两个类别,并且过去已经这样做了。但我还没有尝试过两个以上的自定义single.php文件。看起来很简单。我在single.php文件中创建了一些if语句,用于将用户重定向到正确的模板。但是,我只是得到一个空白页面。这是我在single.php文件中的代码。
<?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');
}
?>
答案 0 :(得分:-1)
您是否已声明全局wp_query?您可能有错误报告,这就是为什么您要查看空白页面,所以请尝试:
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');
}
}