WordPress不同分类文章调用不同模板样式
WordPress不同分类文章调用不同模板样式。有时候我们希望wordpress模板的文章页面能每个分类都不一样,但是文章页面是由single.php统一控制的,这样如果希望WordPress不同分类文章调用不同模板样式,一个single.php是不够用的,所以往往我们需要新建single-post.php和single-pro.php,一个显示新闻,一个显示产品,各有各的样式。但wordpress能实现这种效果吗?答案是肯定的,而具体的功能实现如下:
WORDPRESS读取一篇文章,首先调用single.php,所以我们在single.php加入条件判断语句,最常用的是in_category()函数,可以判断文章在哪个分类下,调用哪个single模板,但in_category()有局限性,不能判断子分类和子分类以下的分类,如产品分类,底下可能有数十种分类,而in_category()只能单一写死分类ID。
下面就是具体实现代码有需要的童鞋就拿走吧。代码本人已亲测可放心使用。
- <?php if ( in_category('post') ) {
- include(TEMPLATEPATH . '/single-post.php');
- }
- // elseif 在一次判断 想在加判断复
- 制代码 elseif ( in_category('plugin') )
- {
- // pro 为category的别名
- include(TEMPLATEPATH . '/single-plugin.php')
- ; }
- // elseif 结束
- else { include(TEMPLATEPATH . '/single-all.php')
- ; } ?>
in_category(‘post’) 里面的post还可以支持ID,即写出 in_category(’3′)。
如果是多个ID,可以这样写
in_category( array( 2,3,7) )
如果是多个别名,可以这样写
in_category( array( 'themes','plugins','develop') )
补充一下:使用方法,把上面这段代码放在single.php,然后分别多建一个single-post.php、single-plugin.php(名字自己定)和一个常用通用的single-all.php 来作为判断,如果分类post就显示single-post.php和分类plugin就显示single-plugin.php否则就显示常用通用的sinlge-all.php。
还没有任何评论,你来说两句吧