X

Comment rediriger une recherche WordPress qui ne renvoie qu’une seule réponse ?

Snippets by IsItWP

Voulez-vous rediriger votre recherche vers l’article s’il n’y a qu’un seul résultat ? Cet extrait 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 à votre 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 ) );
        }
    }
}

Note : Si c’est la première fois que vous ajoutez des extraits de code dans WordPress, veuillez vous référer à notre guide sur comment 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 comme : Améliorer l’expérience de recherche par défaut de WordPress – la revue complète de Search WP.

Commentaires   laisser une réponse

  1. I get a syntax error, unexpected ‘$wp_query’ (T_VARIABLE) when i copy paste in your code in the functions.php file. So what i have is a custom post type named cars with 4 taxonomies and i have made an archive page that uses the grid plugin and the search and filter pro plug-in. All works well but i want to have a redirected to the post page instead if i have only one result in the archive. Can you give some hints ? Thanks !

  2. Thanks!

  3. 12 Not-So-Obvious WordPress Tweaks to Improve Posts and Pages - WPMU DEV mars 27, 2015 à 8:10 am

    […] really like this one – thanks WP Snipp! When a user searches your website and there is only one result the user is taken straight to the […]

  4. WordPress Conditional Tags (And Snippets) for Beginners mars 4, 2015 à 11:52 pm

    […] [Source] […]

  5. Cameron Coleman juillet 26, 2013 à 6:31 pm

    Nice code but I would make one improvement… change

    if ($wp_query->post_count == 1) to
    if ($wp_query->found_posts == 1)
    The original code breaks pagination when there is only one post left on the next page and redirects to it instead of showing it. eg. If a post archive is set to show 10 post per page and 11 results are returned then instead of showing the last post it redirects to it.

    1. this is working properly, thanks!

      1. Glad it helped 🙂

  6. 29 Wordpress Tweaks to Improve Posts and Pages octobre 18, 2011 à 9:03 am

    […] [Source: WPSNIPP] […]

  7. Your sample worked fine for me, everything appears to work working.

    1. Hey, me too now. Sorry. Thanks.

      1. no problem 🙂

Ajouter un commentaire

Nous sommes heureux que vous ayez choisi de laisser un commentaire. N'oubliez pas que tous les commentaires sont modérés conformément à notre privacy policy, et que tous les liens sont en nofollow. N'utilisez PAS de mots-clés dans le champ du nom. Engageons une conversation personnelle et constructive.

WordPress Launch Checklist

L'ultime liste de contrôle pour le lancement de WordPress

Nous avons rassemblé tous les éléments essentiels de la liste de contrôle pour le lancement de votre prochain site Web WordPress dans un ebook pratique.
Oui, envoyez-moi le gratuit !