WordPress不同分类调用不同的不同分类列表模板样式和文章模板样式

[ wordpress教程   // 2015-02-03  ]
999

使用过帝国CMS和织梦DEDEcms建站的朋友都知道,我们可以为不同的分类列表调用不同的分类列表模板样式,不同分类下的文章使用不同的文章页面样式!这样感觉网站大气有个性,下面我来给大家介绍wordpress主题不同分类显示不同样式模板具体步骤.

WordPress不同分类使用不同列表模板样式:

方法一:创建独立ID或别名的样式文件

WordPress默认的分类是查找对应ID的主题文件,找不到就会指向archive.php文件,如果archive.php文件不存在,就会默认使用index.php文件。

到博客后台查看一下要设计样式的分类的ID,假设分类ID为7,之后把主题文件archive.php复制一下,把文件改名为:category- 7.php,这样当你浏览分类ID为7的分类时,就会自动调用category-7.php主题文件,就实现了自定义显示分类为7的样式。

上面是根据ID来创建文件,其实也可以通过别名来创建,比如id为7的分类别名为Internet,那么创建一个名为category-Internet.php的文件,效果和category-7.php是一样的。

当然了,你创建的category-7.php或category-Internet.php的样式要区别于archive.php哦,要不然,就称不上“不同分类使用不同列表样式”了,呵呵

方法二:判断ID调用不同样式的文件:

上面的方法比较有局限性,如果要实现多个分类列表调用同一个列表模板样式,就需要创建多个文件,此时我们可以使用is_category 这个函数!

首先,我们创建两个以上的不同样式的列表文件,比如这里创建article_list.php(文章列表模板样式)、thumb_list.php(有缩略图的列表模板样式)和image_list.php(图集列表样式),然后创建一个archive.php文件,在archive.php中使用下面的代码实现不同的效果。

例如:

1)要实现id为5的分类使用的是image_list.php样式,其余的使用article_list.php样式,代码如下:

<?php

if ( is_category(5) ) {

include(TEMPLATEPATH . '/image_list.php');

} else {

include(TEMPLATEPATH . '/article_list.php');

}

?>

2)要实现id为8、9、10这三个分类都使用thumb_list.php样式,其余的使用article_list.php样式呢?可以通过数组实现,以此类推,具体代码如下:

<?php

if ( is_category(array(8,9,10)) ) {

include(TEMPLATEPATH . '/thumb_list.php');

}

else {

include(TEMPLATEPATH . '/article_list.php');

}

?>

3)要实现id为8、9、10三个分类使用thumb_list.php样式,id为1、2、3的分类使用image_list.php样式,其余使用article_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');

}

?>

小结:上面两种方法都可以实现WordPress不同分类使用不同列表样式,大家可以根据自己需要来选择,奇芳阁更加倾向于方法二,因为通过数组调用,只要给主题设置后台添加一个填写分类id数组的表单,就可以让主题使用者方便地设置啦。

WordPress不同分类下的文章使用不同文章样式:

WordPress不同分类下的文章使用不同文章模板样式实现的方法和上面说到的方法二的原理是一样的,只不过使用的函数不是is_category ,而是 in_category 。同样我们要根据需要创建两个以上的文章模板样式,比如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文件分别取名为“single1.php”、“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');

}

?>

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