Il motore di ricerca interno di WordPress, quello richiamato dalla funzione search per intenderci, effettua una ricerca sull’intero contenuto del nostro blog: pagine, post, TAG, categorie…
E’ possibile però, per i motivi più diversi, voler impedire che un post o una pagina appaia tra i possibili risultati di una search.
Nel mio caso ho realizzato uno script di pagamento on-line ed ho impostato una determinata pagina come pagina di conferma di avvenuto pagamento. Volevo che l’utente non trovasse questa pagina nei risultati di ricerca all’interno del blog.
Ho iniziato così ad informarmi su web su possibili soluzioni a questo quesito e, grazie all’aiuto di Katherine, ho trovato la soluzione che riporto qui di seguito.
Per ottenere il risultato richiesto, occorre inserire, all’interno della pagina function.php del proprio template, il seguente codice PHP:
function search_filter($query) {
if ($query->is_search) {
$query->set('post__not_in', array(26,27,32));
}
return $query;
}
add_filter('pre_get_posts','search_filter');
ATTENZIONE: tale codice impedisce che la pagina venga visualizzata tra i risultati di una search interna di WordPress, non impedisce che i motori di ricerca tradizionali (Google, Bing, etc…) indicizzino la pagina!!
Mediterraneo dice
Esiste un modo per impedire che i motori di ricerca indicizzino una pagina?
Andrea dice
Inserisci il meta tag: