WordPress: includere i Custom Post Type nei risultati di ricerca

Se utilizzi i CPT, ossia i custom post type di WordPress per la gestione ottimale dei tuoi contenuti, è possibile che se un utente faccia una ricerca interna, non vengano restituiti questo genere di contenuti.

Qualche giorno fa, per un progetto che seguo, è venuto fuori questo problema, davvero fastidioso e che rischia di compromettere l’esperienza dell’utente. Ho rapidamente trovato una soluzione e voglio condividerla con te.

In effetti, se un utente cerca all’interno del tuo sito o blog qualcosa e non la trova, l’esperienza sarà negativa e di certo cercherà altrove.

Il fatto diventa ancora più sconveniente se effettivamente la risorsa è presente, ma non viene rintracciata dalla ricerca interna.

Fortunatamente esiste una soluzione, molto semplice da implementare e dal risultato garantito.

Tutto quello che dovrai fare è inserire il codice che troverai qui sotto, facendo le opportune modifiche, all’interno del tuo template, per la precisione all’interno del file functions.php, meglio sempre del tema figlio o child theme.

Ecco il codice da inserire:

add_filter( ‘pre_get_posts’, ‘ricerca_includi_cpt’ );
function ricerca_includi_cpt( $query ) {

if ( $query->is_search ) { $query->set( ‘post_type’, array( ‘post’, ‘cpt1’, ‘cpt2’ ) ); }

return $query;

}

Ecco cosa devi modificare:

Nella riga $query->set( ‘post_type’, array( ‘post’, ‘cpt1’, ‘cpt2’ ) ); puoi leggere post, cpt1 e cpt2: si tratta delle tipologie di post. Post va sempre lasciato: si tratta dei normali articoli di WordPress.

Quello che devi modificare è cpt1 e cpt2, inserendo lo slug dei tuoi custom post type. Se hai un solo cpt puoi tranquillamente eliminare la seconda voce, mentre se ne utilizzi di più ti basterà aggiungerli.

Ad esempio se nel tuo sito utilizzi un custom post type per le ricette, con slug ricette, andrai ad inserire proprio ricette al posto di cpt1.

Puoi inserire il codice alla fine del file functions.php, subito prima della chiusura php.

Una soluzione molto semplice ma molto utile per risolvere un problema comune.

Se hai domande o considerazioni lascia subito un commento, come sempre riceverai presto una risposta.

We will be happy to hear your thoughts

Leave a reply