Il est parfois utile, dans le cadre de la création de landing pages dans les projets web et plus particulièrement sous WordPress, de devoir intégrer des résultats de recherche au sein de pages ou d’articles. La solution la plus simple passe par la création d’un simple shortcode 😉
// Ajout shortcode "rechercher" // Usage : [rechercher terme="texte recherché" type="post"] function func_rechercher($atts) { // Extraction des paramètres extract(shortcode_atts(array( 'terme' => '', 'posttype' => 'post' ), $atts)); // Recherche de posts en rapport avec le terme défini $the_query = new WP_Query('s='.$terme.'&post_type='.$posttype); // Boucle sur les résultats if ($the_query->have_posts()) { $html = '<h4>À lire, à propos du terme <span style="color:#888F96">'.$terme.'</span></h4><ul style="border-top:0 !important;">'; while ( $the_query->have_posts() ) { $the_query->the_post(); $html .= '<li><a href="'.get_permalink().'" title="'.get_the_title().'">'.get_the_title().'</a></li>'; } $html .= "</ul>"; } // Reset Post Data wp_reset_postdata(); return $html; } add_shortcode('rechercher', 'func_rechercher');
Il vous suffit ici de personnaliser la sortie du résultat (que l’on pourra au besoin encadrer par un style CSS). J’ai utilisé ce shortcode dans le cadre du glossaire mis en oeuvre sur mon site photo, ce qui donne par exemple, pour le shortcode suivant :
[rechercher terme="hotlink"]
…le résultat visible ici sous la définition du terme hotlink.
Vous avez la possibilité de passer en paramètre le post_type afin de pouvoir utiliser cette fonction sur des domaines précis de vos développements 😉
2 commentaires sur WordPress : shortcode pour insérer les résultats d’une recherche
lionel 20 février 2012
Bonjour,
Merci pour ce code ! Le rendu est plutôt pas mal sur le modèle.
amicalement
romain 4 mars 2013
hello Cedric!!
encore un bon hack pour améliorer son wordpress, dommage que tu ne postes plus de nouveaux bouts de codes sur ce site.