2013-08-13 2 views
0

У меня есть стандартный запрос, который показывает сообщения, основанные на количестве просмотров.Исключить сообщение из ключевого слова на основе запроса в заголовке

<?php $cat_id='-8';//the category ID 
$limit = get_option('posts_per_page'); 
query_posts(array(
'showposts'=>32,'more' => $more = 0, 
'v_sortby' => 'views', 
'v_orderby' => 'DESC', 
'v_outtype' => 'content', 
'v_timespan' => 'total', 
'paged' => $paged 
)); ?>    
<?php if (have_posts()) : while (have_posts()) : the_post(); ?> 

Однако, я хотел бы исключить все посты с надписью "metal" в названии.

Я сделал несколько поисков, и я нашел код, который может это сделать, но я не уверен, как применить его к запросу?

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

ответ

0

Ваш массив запросов выглядит как содержащий параметр запроса. Я не уверен, какой параметр приходит последним перед «порядком» и ограничивает утверждения. Но, если предположить, v_timespan это последнее условие и значения непосредственно используются (без фильтрации) Я рекомендую изменить его (без баловаться с фактической строки запроса - который не показан код) для:

array(
'showposts'=>32,'more' => $more = 0, 
'v_sortby' => 'views', 
'v_orderby' => 'DESC', 
'v_outtype' => 'content', 
'v_timespan' => "total and title not like '%metal%'"; 
'paged' => $paged 
)) 
+0

К сожалению, приведенный выше код ничего не дает. Но ваш код выглядит как SQL-запрос. Выше всего обычный запрос Wordpress, а затем цикл. – user1083148