当前位置:首页 > CMS教程 > WordPress > 列表

wordpress利用is_category()实现不同分类显示不同样式

发布:smiling 来源: PHP粉丝网  添加日期:2014-06-20 16:34:37 浏览: 评论:0 

今天帮一个广告公司做一个小网站网站是利用wordpress博客来做的,但是对方要需不为分类可以显示不同的风格了,也就是不同分类可以显示自定的样式了,这种方法我们可以利用is_category()来判断分类再调用定义好的样式就可以了,有点像博客的皮肤功能了.

通过is_category()进行判断来修改样式,代码如下:

  1. <?php 
  2. if (is_category('category1')) { 
  3.     echo 'class="category1-red"'
  4. if (is_category('ccategory2')) 
  5.     echo 'class = "category2-green"'
  6. ?> 

这种方法简单明了,以twentyten主题为例,在不更改主循环的情况下,还可以通过上述方法为主div添加样式,例如如下代码:

  1. <?php if(is_category('test')){ ?> 
  2.         <div id="container" class="test"
  3. <?php } else {?> 
  4.          <div id="container"
  5. <?php } ?> 

通过名为test的class,可以在样式表中重写默认的样式.

下面是补充方法:

IF IN_CATEGORY 条件标签

首先,复制两个single.php文件分别取名为“single1.php” 和“single2.php”,然后,把原先的single.php文件里面的内容全部删除,并用下面的代码进行替换:

  1. <?php 
  2. $post = $wp_query->post; 
  3. if ( in_category(’9′) ) { 
  4. include(TEMPLATEPATH . ‘/single2.php’); 
  5. else { 
  6. include(TEMPLATEPATH . ‘/single1.php’); 
  7. ?> 

意思是:检查日志,如果日志属于分类ID9,则显示single2.php,如果不是,则显示single1.php.

还可以使用更多的条件语句来为不同的类别指定不同的样式和内容,例如如下代码:

  1. <?php 
  2. $post = $wp_query->post; 
  3. if ( in_category(’9′) ) { 
  4. include(TEMPLATEPATH . ‘/single9.php’); 
  5. elseif ( in_category(’12′) ) { 
  6. include(TEMPLATEPATH . ‘/single12.php’); 
  7. elseif ( in_category(’42′) { 
  8. include(TEMPLATEPATH . ‘/single42.php’); 
  9. else { 
  10. include(TEMPLATEPATH . ‘/single1.php’); 
  11. } } 
  12. ?> 

因为并不想都改变这两个single模板文件,而仅仅是添加额外的样式表到第二个也就是single2.php文件,于是再创建两个header模板文件,就像复制single.php一样,然后在第二个header文件的顶部添加上外部样式表的链接,代码如下:

  1. <style type=“text/css” media=“screen”> 
  2. @import URL(‘/wp-content/themes/mytheme/style.css’); 
  3. @import URL(‘/wp-content/themes/mytheme/cssstyles.css’); 
  4. </style> 

接着,就是要在第二个single2.php里面调用header2.php,代码如下:

  1. <?php 
  2. /* Don’t remove this line. */ 
  3. require(‘./wp-blog-header.php’); 
  4. include(get_template_directory() . ‘/header2.php’ 
  5. ?> 

不管是使用in_category还是is_category都是根据当前页面过来的分类id来判断了,这个我只是在程序中判断了,如果要加在后台让那些不懂程序的人设置我们可能不要设置一下数据库了.

Tags: is_category 显示不同样式

分享到: