WordPress the_title()限制如果'关键字'

问题描述:

我想知道是否有循环中的方式来停止显示帖子的标题是否包含特定关键字?WordPress the_title()限制如果'关键字'

感谢

而不是使用the_title()的,使用get_the_title()。区别在于the_title()直接输出标题,而get_the_title()返回标题。因此,你可以做一个简单的条件:

if(strpos(get_the_title(), 'Keyword') === false) { 
    // Title does not contain Keyword 
} 

if(!preg_match("'keyword'", get_the_title()){ 
    //the loop 
} 

使用strpos更高效;使用preg_match更灵活,因为您可以稍后添加正则表达式或单词列表。

迄今为止的答案都可以接受。如果可能,我不希望在条件中包装代码块。

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

添加以下在循环的开头:

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

有可能过滤标题内容的清洁方式(上月推出了3.3如果我记得还有一个wp_title过滤器)。

http://codex.wordpress.org/Plugin_API/Filter_Reference/wp_title