不同类别的背景图像

时间:2013-02-17 作者:Meigo62

我试图为每个类别放置不同的身体背景图像。

body { 
background-color: #000; 
background-image: url(img/bg.png); 
background-repeat: no-repeat; 
background-position: center top; 
font-size: 14px; color: #555; 
font-family: Arial, Helvetica, Verdana, sans-serif; }
我只想与众不同background-image: url(img/bg.png); 对于每个类别。

我找到了一种可能的方法。是这样的:

<link rel="stylesheet" href="" type="text/css" media="screen,projection" /> 
<? php if( is_category(1) ) { ?> 
<link rel="stylesheet" href="" type="text/css" media="screen" /> 
<?php } 
elseif ( is_category (2) ) { ?> 
<link rel="stylesheet" href="" type="text/css" media="screen" /> 
<?php } 
elseif ( is_category (33) ) { ?> 
<link rel="stylesheet" href="" type="text/css" media="screen" /> <?php } 
else { ?> <?php } ?>
尽管如此,我很确定这不是实现我目标的最佳方式,因为:

1) 它查找整个样式表2)在标题内进行查询。php这可能不是考虑页面速度的最佳方式

我的想法是创建不同的身体类别:

body.apple { code here }
body.area { code here }
body.usa { code here }
body.bolt { code here }
body.jennifer { code here }
。。。或者别的什么。

我只需要php从一个样式表中为不同的类别加载不同的主体类。

有人有好的解决方案吗?

4 个回复
最合适的回答,由SO网友:supertrue 整理而成

你可以使用Wordpress的handybody_class() 作用取决于它是否以及如何在你的主题中使用,它可能已经为你提供了你所需要的。以下是如何找到答案:

检查页面的源代码,查看<body> 类别存档页中的标记具有包含类别段塞的任何类别:category-apple, category-area, category-usa, 等等。默认情况下,通常会包括这些内容。

如果它们存在,您可以在CSS中使用它们作为选择器:body.category-apple { /* code here */ }, 等

如果没有,请添加body_class() 功能到<body> 标记在主题中,可能位于标题中。php。其工作原理如下:

<body <?php body_class(); ?>>

或者,您可以添加任何额外的类作为参数。

以下是Wordpress Codex中的条目:http://codex.wordpress.org/Function_Reference/body_class

SO网友:fuxia

这已经是内置的:函数body_class() 为每个类别创建特殊类:

PHP

<body <?php body_class(); ?>>

Output on category "jennifer"

<body class="category-jennifer">

SO网友:s_ha_dum

如果主题正在使用body_class 应该是这样的,那么您已经拥有了所需的所有课程。

对于类别,您应该具有:

如果您有很多类别规则,我建议您有条件地仅为类别存档加载样式表。如果你只有很少的规则,那就不值得了。只需将它们包含在主样式表中即可。

function load_cat_style_wpse_87295() {
   if (!is_category()) return false;
   wp_register_style( \'catstyle\', get_stylesheet_directory().\'/path/to/stylesheet\', false, null, \'all\' );
   wp_enqueue_style( \'catstyle\' );
}
add_action( \'wp_enqueue_scripts\', \'load_cat_style_wpse_87295\' ); 

SO网友:Lea Cohen

正如这里的其他答案所说,当你在分类页面上时body_class 函数已经为您提供了当前类别的类。

但是,如果希望背景图像也保留在类别的帖子中,可以使用codex on the body_class function and filter:

// add category nicenames in body class
function category_id_class($classes) {
   global $post;
   foreach((get_the_category($post->ID)) as $category)
        $classes[] = $category->category_nicename;
   return $classes;
 }
 add_filter(\'body_class\', \'category_id_class\');

结束

相关推荐

使用插件将定制代码添加到header.php中

我有一堆代码,我倾向于把它们放进header.php 我所做的每一个特定于Internet Explorer的站点。我想知道是否有办法将代码插入“标准”header.php. 是的,我可以简单地修改标题。但我们的想法是让它成为一个通用的插件。具体来说,我想创建一个插件,在默认样式表之后立即在标题中响应以下内容:<!--[if IE]> <link rel=\"stylesheet\" href=\"<?php bloginfo(\'stylesheet_director