我无法弄清楚当点击帖子时将当前类别ID传递给header.php的方法。
所以,让我说我在第2类,然后点击属于多个类别的帖子。我希望single.php保持在类别2的外观。为了做到这一点,我需要一个变量来告诉标题它来自哪个类别
答案 0 :(得分:0)
只需将模板类别命名为X.php,其中X是您想要自定义模板的特定类别名称或ID,并将其放在主题目录的/ single文件夹中。现在,只要调用一个帖子并且它匹配该文件夹中的现有模板,它就会使用它来显示帖子而不是常规的single.php。如果未找到匹配项,则使用single.php。
在functions.php中:
define(SINGLE_PATH, TEMPLATEPATH . '/single');
add_filter('single_template', 'force_cat2single_template');
function force_cat2single_template($single) {
global $wp_query, $post;
foreach((array)get_the_category() as $cat) :
if(file_exists(SINGLE_PATH . '/single-cat-' . $cat->slug . '.php'))
return SINGLE_PATH . '/single-cat-' . $cat->slug . '.php';
elseif(file_exists(SINGLE_PATH . '/single-cat-' . $cat->term_id . '.php'))
return SINGLE_PATH . '/single-cat-' . $cat->term_id . '.php';
endforeach;
if(file_exists(SINGLE_PATH . '/single.php'))
return SINGLE_PATH . '/single.php';
elseif(file_exists(SINGLE_PATH . '/default.php'))
return SINGLE_PATH . '/default.php';
return $single;
}