0

我有以下声明

<?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 }
?>   

第一部分还可以,第二部分没有去掉php标签the_title部分,只是在文章标题后面加上了BLOG这个词。如何让它删除 the_title 并用 BLOG 替换它?

谢谢

4

2 回答 2

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 时更容易阅读。

于 2013-08-10T00:12:05.727 回答
0

is_single 是为了测试某个东西是否是一个帖子类型的模板。而且我认为帖子不能成为主页。页面本身可以在设置->阅读->首页中设置为首页...

你可以使用这些:

// 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 }
?>  
于 2013-08-10T00:51:20.440 回答