2012-09-04 60 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