声明不起作用

时间:2013-08-10 00:07:53

标签: wordpress

我有以下声明

<?php
if (!is_page('home')) {
 ?>
<div id="grey-bar">
<h1><?php the_title(); ?></h1>
</div>
<?php }

?>
<?php
if (is_single()) {
?>
<div id="grey-bar">
<h1>BLOG</h1>
</div>
<?php }
?>   

第一部分是OK,第二部分没有删除php标签的the_title部分,它只是在帖子标题后添加了单词BLOG。如何删除the_title并将其替换为BLOG?

由于

2 个答案:

答案 0 :(得分:1)

如果页面不是主页,它也可以是单页。逻辑结构的方式,两个子句都将执行。

您可能希望这样做:

<?php if (!is_page('home')): ?>
<div id="grey-bar">
<h1><?php the_title(); ?></h1>
</div>
<?php elseif (is_single()): ?>
<div id="grey-bar">
<h1>BLOG</h1>
</div>
<?php endif; ?> 

括号语法也可以,但嵌入html时更容易阅读。

答案 1 :(得分:0)

is_single用于测试某些内容是否为帖子类型的模板。我不认为帖子可以成为主页。页面本身可以设置为设置 - &gt;阅读 - &gt;前页...

中的首页

你可以使用这些:

// check by page id
if (is_page(PAGENUM)){...}

//returns TRUE when the main blog page is being displayed and the 
//Settings->Reading->Front page displays is set to "Your latest posts"
if (is_front_page()){...}

// Return TRUE if page type. Does not work inside The Loop
if (is_page(PAGENUM)){...}

// Checks if the post is a post type. Returns FALSE if its a page.
is_single()

所以,因为!is_page('home')将在is_single()

上返回TRUE
<?php
if (is_home()) { // do this on home page only
 ?>
<div id="grey-bar">
<h1><?php the_title(); ?></h1>
</div>
<?php }

?>
<?php
if (is_single()) { //displays this stuff if its a post type only
?>
<div id="different-bar">
<h1>BLOG</h1>
</div>
<?php }
?>