Come personalizzare il motore di ricerca per WordPress?
WordPress ha un motore di ricerca integrato, tuttavia, non è sofisticato come il motore di ricerca di Google (ad esempio, la ricerca WP non include commenti). Per utilizzare il motore di ricerca personalizzato di terze parti, puoi inserire il seguente codice nel file del modello di funzione, ad esempio functions.php
function wp_use_google_search( $wp_query) {
$s = '';
if (isset($wp_query->query_vars['s'])) {
$s = trim($wp_query->query_vars['s']);
}
if (!$s) { // empty query returns
return;
}
// get current host
$host = strtolower($_SERVER['HTTP_HOST']);
// use google
$search_engine = '<a class="vglnk" target="_blank" href="https://www.google.com/search?q=" rel="nofollow"><span>https</span><span>://</span><span>www</span><span>.</span><span>google</span><span>.</span><span>com</span><span>/</span><span>search</span><span>?</span><span>q</span><span>=</span></a>';
// concatenate the query
$query = urlencode($s. ' site:'. $host);
// redirect to search engine
wp_redirect($search_engine. $query);
// end the page
exit;
}
// add customized search handler
add_action('parse_query', 'wp_use_google_search');
Un altro vantaggio dell’utilizzo di un motore di ricerca avanzato di terze parti per l’indicizzazione dei post di wordpress è che riduce il sovraccarico del tuo server soprattutto se c’è un grande traffico e la tua larghezza di banda è limitata. Puoi anche personalizzare il motore di ricerca, ad esempio utilizzando google.co.uk invece di google.com se ti rivolgi solo agli utenti del Regno Unito.
Puoi salvare il file sopra in un percorso comune accessibile a tutti i blog wordpress se hai più blog ospitati sullo stesso server (VPS o server dedicato ). Pertanto, in ogni functions.php su child theme, puoi semplicemente includere:
// Assume we save the above function in file /commom/path/to/wp_search.php
require('/commom/path/to/wp_search.php');
Nota, assicurati di non dimenticare <?php (all’inizio del file PHP) .. e ?> (tag di fine file opzionale) quando salvi la funzione sopra in un singolo file php.