WordPress the_title () ограничить, если «Ключевое слово» - PullRequest
0 голосов
/ 28 декабря 2011

Мне было интересно, был ли в цикле способ остановить отображение сообщений, если заголовок сообщения содержит определенное ключевое слово?

Спасибо

Ответы [ 5 ]

4 голосов
/ 28 декабря 2011

Вместо использования the_title () используйте get_the_title () . Разница в том, что the_title () выводит заголовок напрямую, а get_the_title () возвращает его. Следовательно, вы можете просто выполнить простое условие:

if(strpos(get_the_title(), 'Keyword') === false) {
    // Title does not contain Keyword
}
1 голос
/ 28 декабря 2011

Добавьте следующее в начале цикла:

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

Некоторые преимущества этого подхода:

  1. Инвертирует логику, так что вам не нужно помещатьвесь ваш цикл внутри условия.
  2. stristr будет соответствовать вхождению подстроки в любом месте в заголовке, где strpos не будет ловить совпадения, где ключевое слово находится в начале заголовка,Иногда целочисленное значение 0 оценивается как ложное.См. руководство по PHP
  3. stristr без учета регистра (используйте
0 голосов
/ 29 декабря 2011

Существует фильтр wp_title, который может фильтровать содержимое заголовков в чистом виде (введен в прошлом месяце в 3.3, если я хорошо помню).

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

0 голосов
/ 28 декабря 2011

Оба ответа пока приемлемы.Я предпочитаю не по возможности оборачивать куски кода в условные выражения.

if ( preg_match('/keyword/', get_the_title() ) {
    continue;
}
0 голосов
/ 28 декабря 2011
if( !preg_match( "'keyword'", get_the_title() ){
    //the loop
}

Использование strpos более эффективно;использование preg_match более гибкое, так как вы можете добавить регулярные выражения или список слов позже.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...