Escludere categorie dai risultati di ricerca in WordPress
Ho due categorie che voglio escludere dai risultati della mia ricerca, ma finora senza successo.
Ho provato ad aggiungere il seguente codice ma non ha funzionato.
$search_query = query_posts(array('category__in' => array(-22, -21)));
Ecco il mio codice attuale.
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();
Puoi utilizzare l'azione pre_get_posts per escludere categorie dalla ricerca.
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 );
Dovresti incollare questo codice nel file functions.php del tuo tema.

Grazie per la tua risposta. Ho provato soluzioni simili che ho trovato su internet ma nessuna sembra funzionare. Inizio a pensare che forse sia un problema con il mio modulo di ricerca. Farò sapere se scopro qualcosa.

Alla fine ho risolto i miei problemi rimuovendo "$query->" da "$query->is_search". Ho fatto questo perché le categorie indesiderate continuavano a comparire se si inseriva una query di ricerca vuota.

Scusate la mia ignoranza, ma qual è lo scopo di if ( is_admin() || ! $query->is_main_query() )
?

Ottimo, e come funzionerebbe con le categorie dei custom post type? Grazie!

@Yuri non pubblicare risposte come nuove soluzioni, e inserisci nuove domande come nuove domande non come commenti https://wordpress.stackexchange.com/questions/ask
