分配某些页面或帖子以使用父页面或类别的模板

时间:2012-12-30 作者:MF1

我创建了一个使用Wordpress作为CMS的网站。

每个子类别中都有父页面->子类别->内容。

一些第三级页面是使用带有类别的帖子生成的。我想为父页面分配一个模板,以便根据每个父模板,网站的外观保持一致。此外,是否可以将模板分配给帖子类别?

1 个回复
SO网友:jochem

它们不继承父模板。

Wordpress有一些巧妙的方法可以为某些类别或自定义帖子类型(分类法)制作特殊模板。您可以将其应用于所有类别,某些类别(按ID或slug)和归档页。可悲的是,它不能以分层的方式工作,你必须为每个类别创建一个页面。。

您可以在此页面上阅读有关它的所有信息以及它的工作原理:http://codex.wordpress.org/Category_Templates

如果您滚动到该页面的底部,您还将找到一个“相关”部分,在那里您可以了解它是如何用于页面、标记、自定义分类法、作者模板等的。

注意:同时签出http://codex.wordpress.org/Template_Hierarchy

但这有一个解决办法。您可以在函数中使用此代码。php(或制作插件)

add_action(\'template_redirect\', \'inherit_cat_template\');

function inherit_cat_template() {

if (is_category()) {

$catid = get_query_var(\'cat\');

if ( file_exists(TEMPLATEPATH . \'/category-\' . $catid . \'.php\') ) {
include( TEMPLATEPATH . \'/category-\' . $catid . \'.php\');
exit;
}

$cat = &get_category($catid);

$parent = $cat->category_parent;

while ($parent){
$cat = &get_category($parent);
if ( file_exists(TEMPLATEPATH . \'/category-\' . $cat->cat_ID . \'.php\') ) {
include (TEMPLATEPATH . \'/category-\' . $cat->cat_ID . \'.php\');
exit;
}
$parent = $cat->category_parent;
}
}
}
在类别页面中,查找“类别XX”。php的模板,如果它不存在,它会查找父cat的模板,等等。如果顶级cat没有类别模板,则返回到正常的模板层次结构。

结束

相关推荐

尝试将分类法添加到Get_Categories(),但不起作用。如何解决这个问题?

我购买了这个模板,我正在尝试自定义。我添加了一个名为location的新分类法类别,并试图用新的分类法类别替换主题中加载的默认类别。以下是当前代码及其加载类别的位置: $cats_array = get_categories(\'hide_empty=0\'); $pages_array = get_pages(\'hide_empty=0\'); $site_pages = array(); $site_cats = array(); foreach (