Excluir categorías de la consulta de búsqueda

22 sept 2014, 17:56:08
Vistas: 14.6K
Votos: 4

Tengo dos categorías que quiero excluir de mis resultados de búsqueda, pero hasta ahora sin éxito.

He intentado añadir el siguiente fragmento de código pero no funcionó.

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

Aquí está mi código actual.

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();
0
Todas las respuestas a la pregunta 1
5

Puedes usar la acción pre_get_posts para excluir categorías de la consulta de búsqueda.

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 );

Debes pegar este código en el archivo functions.php de tu tema.

22 sept 2014 17:58:55
Comentarios

Gracias por tu respuesta. He probado soluciones similares que encontré en internet pero ninguna parece funcionar. Estoy empezando a pensar que quizás sea un problema con mi formulario de búsqueda. Informaré si descubro algo.

Swen Swen
22 sept 2014 18:13:37

Terminé solucionando mis problemas eliminando "$query->" de "$query->is_search". Hice esto porque las categorías no deseadas seguían apareciendo si ingresabas una consulta de búsqueda vacía.

Swen Swen
22 sept 2014 18:31:39

Disculpa mi ignorancia, pero ¿cuál es el objetivo de if ( is_admin() || ! $query->is_main_query() ) ?

drabello drabello
2 jul 2017 07:57:09

Perfecto, ¿y cómo funcionaría esto con categorías de tipos de entradas personalizadas? ¡Gracias!

Yuri Yuri
13 nov 2020 13:34:26

@Yuri no publiques respuestas como nuevas soluciones, y publica nuevas preguntas como nuevas preguntas, no como comentarios https://wordpress.stackexchange.com/questions/ask

Tom J Nowell Tom J Nowell
13 nov 2020 15:23:11