Vous souhaitez rediriger votre recherche vers l'article s'il n'y a qu'un seul résultat de recherche ? Cet extrait de code améliore l'expérience de recherche sur site en éliminant le besoin d'un clic.
Instructions :
Il vous suffit d'ajouter ce code au fichier functions.php de votre thème ou dans un plugin spécifique au site :
add_action('template_redirect', 'single_result');
function single_result() {
if (is_search()) {
global $wp_query;
if ($wp_query->post_count == 1) {
wp_redirect( get_permalink( $wp_query->posts['0']->ID ) );
}
}
}
Remarque : Si c'est la première fois que vous ajoutez des extraits de code dans WordPress, veuillez consulter notre guide sur la manière de copier / coller correctement des extraits de code dans WordPress, afin de ne pas casser accidentellement votre site.
Si vous avez aimé cet extrait de code, n'hésitez pas à consulter nos autres articles sur le site, tels que : Améliorez l'expérience de recherche par défaut de WordPress – l'avis complet sur Search WP.
J'obtiens une erreur de syntaxe, « $wp_query » inattendu (T_VARIABLE) lorsque je copie-colle votre code dans le fichier functions.php. J'ai donc un type de publication personnalisé nommé 'cars' avec 4 taxonomies et j'ai créé une page d'archive qui utilise le plugin 'grid' et le plugin 'search and filter pro'. Tout fonctionne bien, mais je veux être redirigé vers la page de publication au lieu de cela s'il n'y a qu'un seul résultat dans l'archive. Pouvez-vous me donner quelques pistes ? Merci !
Merci !
[…] j'aime vraiment celui-ci – merci WP Snipp ! Lorsqu'un utilisateur recherche sur votre site et qu'il n'y a qu'un seul résultat, l'utilisateur est dirigé directement vers le […]
[…] [Source] […]
Beau code mais je ferais une amélioration... changez
if ($wp_query->post_count == 1)versLe code original casse la pagination lorsqu'il ne reste qu'un seul article sur la page suivante et redirige vers celle-ci au lieu de l'afficher. par ex. Si une archive d'articles est configurée pour afficher 10 articles par page et que 11 résultats sont retournés, au lieu d'afficher le dernier article, il y est redirigé.if ($wp_query->found_posts == 1)
cela fonctionne correctement, merci !
Content que cela ait aidé 🙂
[...] [Source : WPSNIPP] [...]
Votre exemple a bien fonctionné pour moi, tout semble fonctionner.
Salut, moi aussi maintenant. Désolé. Merci.
pas de problème 🙂