我的页面上的帖子是通过此查询获取的:
<?php
$limit = get_option('posts_per_page');
query_posts(array(
'showposts'=>62,
'more' => $more = 0,
'v_sortby' => 'views',
'v_orderby' => 'DESC',
'v_outtype' => 'content',
'v_timespan' => 'year',
'paged' => $paged
));?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
但是,我想排除标题中包含单词&#34; Metal&#34;的所有帖子。
我知道有'post__not_in' =>
功能,但我不确定如何实现它。
我试过
$exclude1 = get_page_by_title('Metal');
然后包括
'post__not_in' => array($exclude1->ID,$exclude2->ID)
但这似乎以页面为中心,而不是自己发布标题。
答案 0 :(得分:1)
在论点中:
$args['special_search'] = 'Metal';
在你的functions.php中:
add_filter( 'posts_where', 'special_search_posts_where', 10, 2 );
function special_search_posts_where( $where, $query ) {
if (isset($query->query_vars["special_search"])) {
global $wpdb;
$where .= ' AND ' . $wpdb->posts . '.post_title NOT LIKE \'%' . $query->query_vars["special_search"] . '%\'';
}
return $where;
}