北极寒流 » 网络资源 » WordPress不同分类调用不同的文章模板 - 2014.08.11

WordPress不同分类调用不同的文章模板

为了让wordpress不同分类使用不同的分类模板,我们可以创建两个以上的不同样式的列表文件,比如这里创建title_list.php(简单的标题列表)、thumb_list.php(有缩略图的列表样式)和img_list.php(图片类表样式),然后把下面代码写入category.php文件(没有该文件就自己新建)

要实现id为8的分类使用的是thumb_list.php样式,其余的使用title_list.php样式,代码如下:

<?php 
if ( is_category(8) ) {
    include(TEMPLATEPATH . '/thumb_list.php');
} else {
    include(TEMPLATEPATH . '/title_list.php');
}
?>
要实现id为8、9、10三个分类使用thumb_list.php样式,id为1、2、3的分类使用img_list.php样式,其余使用title_list.php样式,可以使用elseif实现,代码如下:
<?php 
if ( is_category(array(8,9,10)) ) {
    include(TEMPLATEPATH . '/thumb_list.php');
} elseif ( is_category(array(1,2,3))){
    include(TEMPLATEPATH . '/img_list.php');
} else {
    include(TEMPLATEPATH . '/title_list.php');
}
?>

把上面代码写入category.php到可以实现不同分类显示不同的模板,如果我们希望不同的文章也调用不同的模板,又该如何做呢?

同样我们要根据需要创建两个以上的文章样式,比如single1.php、single2.php和single3.php,然后在single.php通过in_category 判断代码来实现自己需要的效果。

比如要实现id为8、9、10三个分类下的文章使用single1.php样式,id为1、2、3的分类下的文章使用single2.php样式,其余使用single3.php样式,可以把下面代码写入single.php:

<?php 
if ( in_category(array(8,9,10)) ) {
    include(TEMPLATEPATH . '/single1.php');
} elseif ( in_category(array(1,2,3))){
    include(TEMPLATEPATH . '/single2.php');
} else {
    include(TEMPLATEPATH . '/single3.php');
}
?>
下面这种写法也可以
<?php 
if ( in_category(array( 2,3 )) ) {
	get_template_part('single1' );
} elseif ( in_category( 7 )) {
	get_template_part('single2' );
} else {
	get_template_part('single3' );
}
?>
in_category()还可以使用分类别名,如可以这样写
in_category( array( 'themes','plugins','develop') )

基本的思路就是这样,最后的总结只有一句:分类页category判断分类用is_category(), 内容页single判断分类需用in_category()

11

WordPress不同分类调用不同的文章模板

分享到: