Escludere categorie dai risultati di ricerca in WordPress

22 set 2014, 17:56:08
Visualizzazioni: 14.6K
Voti: 4

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();
0
Tutte le risposte alla domanda 1
5

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.

22 set 2014 17:58:55
Commenti

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.

Swen Swen
22 set 2014 18:13:37

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.

Swen Swen
22 set 2014 18:31:39

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

drabello drabello
2 lug 2017 07:57:09

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

Yuri Yuri
13 nov 2020 13:34:26

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

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