3

好的,根据 traitadmin 的回答向下滚动),我正在尝试为我的首页显示不同的 CSS,而为所有其他页面显示不同的 CSS。

以前,我的身体标签是这样的:

<body <?php  body_class() ?>> 

现在,我将其编辑为如下所示:

<body <?php if (is_home()) { ?> id="home"<?php } else { ?> body_class()<?php } ?> >

我还在我的队列中放入了新的样式表,主页的所有样式现在都#home在它们前面。

但是,现在根本没有样式,我的网站完全崩溃了,所有页面。

我想我可能body_class()还需要主页。但是我如何编辑此代码以使其正常工作?

4

3 回答 3

1

最简单的实际上是这样的:

<link rel="stylesheet" href="main.css">
<?php if (is_home()) {
    echo '<link rel="stylesheet" href="home.css">'
} ?>

home.css 中的规则应该比 main.css 具有更高的优先级。所以如果 main.css 有这个:

body { background-color: white; }

home.css 有这个:

body { background-color: blue; }

由于 home.css 链接在 main.css 之后,因此 home.css 中的规则将优先,背景为蓝色。这样,您只能覆盖您需要的样式,并且所有其他样式仍然适用。

在您的情况下,您wp_register_style()只需添加一个 if 测试,然后注册另一种样式。

if (is_home()) {
    wp_register_style('home-style',get_stylesheet_directory_uri().'/stylesheets/home.css');
}
于 2013-05-31T13:32:01.070 回答
0

看起来像一个 wordpress 代码,所以这里是: 在头部:

<?php if (is_home()) {
    // loading the stylesheet if it is the homepage
    echo '<link rel="stylesheet" href="home.css">'
} else {
    // loading the other stylesheet if it is not the homepage
    echo '<link rel="stylesheet" href="other.css">'
} ?>
于 2013-05-31T13:29:20.647 回答
0

默认情况下,WordPress 会在 body 标签中添加两个类:在首页 ( is_front_page())home上添加类,在主页 ( is_home())blog上添加类。因此,在您的主 CSS 文件中,您可以按如下方式使用 body 类:

#mydiv {background:green;}
.home #mydiv {background:blue;}
.blog #mydiv {background:red;}
于 2013-05-31T13:41:38.080 回答