Limitare la ricerca di WordPress in uno specifico post type

Quando di utilizza il search form di WordPress, la ricerca viene effettuata di default in tutti i post type presenti nel database. Ma in molti casi, si ha la necessità di circoscriverla ad un solo post type, oppure a più d’uno, ma non a tutti. Come fare a comunicare al search engine di WordPress questa limitazione?
- Leggi l'articolo, ti bastano solo 1 minuto, 2 secondi
Sei di fretta? Scarica il PDF e consultalo quando vuoi!
Il codice
Modifica il file functions.php del tuo tema, che trovi nello spazio FTP del tuo sito, in:
wp-content/themes/{nome_del_tema}/
ed aggiungi le seguenti linee di codice:
// Limita la ricerca ad uno specifico post type add_filter( 'pre_get_posts', function( $query ) { if ( $query->is_search ) { $query->set( 'post_type', 'page' ); } return $query; } );
Nel caso specifico, i risultati di ricerca saranno limitati ai soli articoli.
In alternativa, se preferisci, puoi aggiungere al form di ricerca, che di solito trovi nel file searchform.php del tuo tema, che trovi nello spazio FTP del tuo sito, in:
wp-content/themes/{nome_del_tema}/
un campo di input nascosto che contenga il post type a cui vuoi limitare la ricerca:
<input type="hidden" name="post_type" value="post" />
ottenendo così esattamente lo stesso risultato del primo esempio.