更改不同页面的标题徽标

时间:2012-06-17 06:51:58

标签: php css wordpress wordpress-theming

我正在寻找如何根据<body>或帖子type/page模板中的任一课程更改徽标。 我不太了解PHP,如果我猜的话我将需要使这个工作。

我认为,如果我在精灵图形中使用所有徽标并使用css类更改为每个页面的不同徽标,那么效果会很好,因此php只会更改类。

像这样的东西?

if(body class="home") {
  <div class="logo1"><img src="images/logo.png" /></div>
} elseif(body class="page1") {
  <div class="logo2"><img src="images/logo.png" /></div>
} else {
  <div class="logo"><img src="images/logo.png" /></div>
}

我还没有尝试过这段代码,只是想知道这种方法是否正确。

2 个答案:

答案 0 :(得分:0)

大多数主题在body标签中添加了几个类,slug或page-id-number。

在body标签中查看您的页面源代码,是的,使用精灵。

PHP太过分了。使用CSS。

答案 1 :(得分:0)

iambriansreed在我面前回答得很好,并提供了一个很好的答案,但我想扩展他所说的内容,我还有更多话要说,而不是发表评论,所以我发表了自己的答案。

在您的HTML中,您将拥有一个徽标元素,例如div或h1标签:

<h1 class="logo">My Company</h1>

然后使用CSS隐藏文本,并将其替换为图像:

.logo {
    background: url(mylogo.png) 0 0 no-repeat;
    width: 200px; /* match logo width */
    height: 80px; /* match logo height */
    text-indent: -9999px; /* hides text */
}

我展示了一种隐藏文字的技巧。还有其他方法。将文本留在标记中的原因是SEO和可访问性。

在子页面上,您将根据附加到身体标签的类使用更具体的选择器来更改徽标背景:

.section2 .logo {
    background: url(mylogo.png) 0 -80px no-repeat;
}
除了根据正在呈现的部分/页面将唯一类附加到body标记之外,PHP不会进入等式。