2011-12-28 56 views

回答

4

而不是使用the_title()的,使用get_the_title()。區別在於the_title()直接輸出標題,而get_the_title()返回標題。因此,你可以做一個簡單的條件:

if(strpos(get_the_title(), 'Keyword') === false) { 
    // Title does not contain Keyword 
} 
-1
if(!preg_match("'keyword'", get_the_title()){ 
    //the loop 
} 

使用strpos更高效;使用preg_match更靈活,因爲您可以稍後添加正則表達式或單詞列表。

0

迄今爲止的答案都可以接受。如果可能,我不希望在條件中包裝代碼塊。

if (preg_match('/keyword/', get_the_title()) { 
    continue; 
} 
1

添加以下在循環的開頭:

<?php if (stristr(get_the_title(),"keyword")) continue; ?> 

一些優點這種方法:

  1. 它顛倒邏輯,這樣你就不必把你的一個條件內的整個循環。
  2. stristr將匹配標題中任何地方的子字符串的出現,其中strpos將不會捕獲匹配,其中關鍵字在標題的開頭。有時整數值0評估爲false。見the PHP manual
  3. stristr不區分大小寫(使用
+0

Re 2,你應該看到PHP手冊:'這個函數可能返回布爾值FALSE,但是也可能返回一個非布爾值,其值爲FALSE,比如0或者「」,請閱讀布爾部分了解更多信息。 ===運算符用於測試這個函數的返回值。「。 – alexn 2011-12-28 18:47:12

+0

alexn的答案使用strpos起作用,因爲===比較類型,並且可以區分0和FALSE – paislee 2011-12-28 18:47:42

+0

「有時整數值0評估爲false」 - 不是在這種情況下。 (0 === false)從來都不是真的 – gotofritz 2011-12-28 18:47:45