admin管理员组

文章数量:1316336

I have two categories that I want to exclude from my search results, so far without luck.

I have tried adding the following piece of code but it didn't work.

$search_query = query_posts(array('category__in' => array(-22, -21)));

Here is my current code.

global $query_string;

$query_args = explode("&", $query_string);
$search_query = array();

foreach($query_args as $key => $string) {
    $query_split = explode("=", $string);
    $search_query[$query_split[0]] = urldecode($query_split[1]);
} // foreach

$searchq = new WP_Query($search_query);

while ($searchq->have_posts()) : $searchq->the_post();

I have two categories that I want to exclude from my search results, so far without luck.

I have tried adding the following piece of code but it didn't work.

$search_query = query_posts(array('category__in' => array(-22, -21)));

Here is my current code.

global $query_string;

$query_args = explode("&", $query_string);
$search_query = array();

foreach($query_args as $key => $string) {
    $query_split = explode("=", $string);
    $search_query[$query_split[0]] = urldecode($query_split[1]);
} // foreach

$searchq = new WP_Query($search_query);

while ($searchq->have_posts()) : $searchq->the_post();
Share Improve this question asked Sep 22, 2014 at 14:56 SwenSwen 1,3847 gold badges21 silver badges36 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 6

You can use pre_get_posts action to exclude categories from search query.

function wcs_exclude_category_search( $query ) {
  if ( is_admin() || ! $query->is_main_query() )
    return;

  if ( $query->is_search ) {
    $query->set( 'cat', '-22, -21' );
  }

}
add_action( 'pre_get_posts', 'wcs_exclude_category_search', 1 );

You should paste this code in your theme's functions.php file.

本文标签: Exclude categories from search query