Comment personnaliser le moteur de recherche pour WordPress ?
WordPress a un moteur de recherche intégré cependant, il n’est pas aussi sophistiqué que le moteur de recherche Google (par exemple la recherche WP n’inclut pas les commentaires). Pour utiliser un moteur de recherche personnalisé tiers, vous pouvez insérer le code suivant dans le fichier de modèle de fonction, par exemple 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 autre avantage de l’utilisation d’un moteur de recherche avancé tiers pour l’indexation des publications WordPress est qu’il réduit la surcharge de votre serveur, surtout s’il y a un trafic important et que votre bande passante est limitée. Vous pouvez également personnaliser le moteur de recherche, par exemple en utilisant google.co.uk au lieu de google.com si vous ciblez uniquement les utilisateurs britanniques.
Vous pouvez enregistrer le fichier ci-dessus dans un chemin commun accessible par tous les blogs wordpress si vous avez plusieurs blogs hébergés sur le même serveur (VPS ou serveur dédié ). Ainsi, à chaque functions.php du thème enfant, vous pouvez tout simplement inclure :
// Assume we save the above function in file /commom/path/to/wp_search.php
require('/commom/path/to/wp_search.php');
Veuillez noter, assurez-vous de ne pas oublier <?php (au début du fichier PHP) .. et ?> (balise de fin de fichier facultative) lorsque vous enregistrez la fonction ci-dessus dans un fichier php individuel.