2012-09-04 38 views
2

关于WordPress模板文件中的一段PHP代码的问题。WordPress模板文件中的PHP if/else结构不起作用

该模板包含此代码:

<h1><?php the_title(); ?></h1> 

我想,如果标题是不是“家”的称号,才能打印。

但这码不起作用:

<?php if (the_title()!='Home'); ?> 
    <h1><?php the_title(); ?></h1> 
<?php endif; ?> 
+0

你应该了解不是简单地说,它“不工作”的问题更加清晰。告诉我们您收到的错误消息,或者您看到的错误信息。 – SDC

+0

你是对的,下次会这样做,正如我通常做的 – waanders

回答

5

the_title()相呼应,它不会返回它的标题。

改为使用get_the_title()

<?php if (get_the_title() != 'Home'): ?> 
    <h1><?php the_title(); ?></h1> 
<?php endif; ?> 

顺便说一句,它看起来像你试图检测,如果你在主页上。检查标题可能很脆弱,因为这可能会改变。

改为使用is_home()

<?php if (! is_home()): ?> 
    <h1><?php the_title(); ?></h1> 
<?php endif; ?> 
+0

+1对于一个非常有用的答案有很多WordPress的具体细节。但是你没有注意到在他的PHP语法中指出了一个大问题(例如,';'而不是'if()'行上的':')。 – SDC

+0

谢谢你们,这工作。我喜欢这样!你对检测主页是正确的。不幸的是'is_home()'不适合我。我通过设置>阅读设置>首页显示将该页面设置为菜单中的“主页”。但没有问题,文本不会改变,并且网站必须在今天完成... – waanders

+0

感谢@WordpressJoomlafreelancer我将代码更改为:<?php if(!is_front_page()):?>

<?php标题(); ?>

<?php endif; ?> – waanders

1

<?php if (the_title()!='Home'): ?>

      ^

使用:而不是;

link

+1

+1发现它根本不运行的主要原因。 @亚历克斯的答案对于wordpress的具体内容更加完整和更有帮助,但他没有指出这个问题。 – SDC

+0

谢谢!你是对的 – waanders

0

另一种简单的解决方案:

<?php if (the_title()!='Home') { ?> 
    <h1><?php the_title(); ?></h1> 
<?php } ?> 
+0

这是行不通的 - 就像Alex说的那样,the_title()不能像那样评估,你必须使用get_the_title()。 – McNab

+0

好的使用get_the_title()这个解决方案,这不会工作? – TraviJuu

+0

不,我的意思是,假设你使用get_the_title,你所放的东西会起作用:) – McNab