丹尼尔·克拉布和我有同样的问题。建立this site 它有一些代码,可以在显示相应帖子的同时查找和使用父类别的模板文件。
我已经更新了它,以支持文件名中的slug(而不仅仅是类别ID)。
// Use a parent category slug if it exists
function child_force_category_template($template) {
$cat = get_query_var(\'cat\');
$category = get_category($cat);
if ( file_exists(TEMPLATEPATH . \'/category-\' . $category->cat_ID . \'.php\') ) {
$cat_template = TEMPLATEPATH . \'/category-\' . $category ->cat_ID . \'.php\';
} elseif ( file_exists(TEMPLATEPATH . \'/category-\' . $category->slug . \'.php\') ) {
$cat_template = TEMPLATEPATH . \'/category-\' . $category ->slug . \'.php\';
} elseif ( file_exists(TEMPLATEPATH . \'/category-\' . $category->category_parent . \'.php\') ) {
$cat_template = TEMPLATEPATH . \'/category-\' . $category->category_parent . \'.php\';
} else {
// Get Parent Slug
$cat_parent = get_category($category->category_parent);
if ( file_exists(TEMPLATEPATH . \'/category-\' . $cat_parent->slug . \'.php\') ) {
$cat_template = TEMPLATEPATH . \'/category-\' . $cat_parent->slug . \'.php\';
} else {
$cat_template = $template;
}
}
return $cat_template;
}
add_action(\'category_template\', \'child_force_category_template\');