wordpress不同分类调用不同的模板

时间: 2013-12-1 分类: WordPress技术 作者: SAI

TAGS:

今天发现一个好的方法解决wordpress不同分类调用不同的模板的方法,刚开始想到的方法就是用if(…) else .. 的方法,后来看到一个比较简单的方法,真是佩服Wp的开发人员啊,下面是具体的操作方法。

1、建立分类,比如我建立的分类为whmcs

2、复制“category.php”模板,重命名为“category-whmcs.php”,就是在原名字后面加上“-whmcs”(whmcs)为分类

3、编辑“category.php”文件内容为你想要的不同的模板的内容

OK , 搞定了,就这么的简单,当你点击whmcs分类的时候,wp会自动识别模板,并调用category.php”模板,其余的没有分类的,就是用默认的模板。

第二种办法
一、不同分类调用不同模板

$post = $wp_query->post;
if ( in_category(’7′) ) {
include(TEMPLATEPATH . ‘/single-view.php’);
}
else if ( in_category(’3′)) {
include(TEMPLATEPATH . ‘/single-case.php’);
}
else if ( in_category(’42′) ) {
include(TEMPLATEPATH . ‘/single42.php’);
}
else {
include(TEMPLATEPATH . ‘/archive-other.php’);
}
?>
几点解释
1、这个应该同时可以扩展为按不同标签等来进行设置。

2、里面的数字为分类ID号,在后台编辑分类的地址上可以看到这个id号,对应写就行了。最后一个else是在之前没特别定义的分类样式。

3、以上代码分别修改的是archive.php和single.php,全部替换成如上代码。

本站成功办法
首先:创建你需要的模板页面,比如single-pro.php,single-news.php,single-other.php。
其次:配合post_is_in_descendant_category()函数,让文章自动判断分类,将插入到模板文件夹下的functions.php文件里面,代码如下:function post_is_in_descendant_category( $cats, $_post = null )
{
foreach ( (array) $cats as $cat ) {
// get_term_children() accepts integer ID only
$descendants = get_term_children( (int) $cat, ‘category’);
if ( $descendants && in_category( $descendants, $_post ) )
return true;
}
return false;
}。
再次:在 single.php页面中替换所以的代码为

{include(TEMPLATEPATH . ‘/single-whmcsmoban.php’);}
else{include(TEMPLATEPATH . ‘/single-moren.php’);}
?>
最后:上传,OK。
如果是分类目录ID3或者ID3以下所有分类的文章将使用single-pro.php模板,如果是分类ID4或者ID4以下所有分类的文章将使用single-news.php模板,而其他ID下面的文章则使用single-other.php模板。
目前没有相关的插件,这种办法虽然局限但是还可用。

Javin

本文作者: SAI

推崇以用户为中心的设计理念,专注于用户体验设计,游走在视觉设计与前端开发之间。我要投稿

除非特殊注明,本文版权归原作者所有,欢迎转载!转载请注明版权以及本文地址,谢谢。
转载保留版权:塞纳» 建站技巧 » WordPress技术 » wordpress不同分类调用不同的模板
本文地址:http://www.saiody.com/?p=735

返回顶部