Améliorer l'affichage des résultats de recherche sur WordPress Optimiser le titre de la page de résultats de recherche Wordpress

 Le titre <title> du document HTML

Pour optimiser le titre de notre document se trouvant dans l'en-tête entre les balises <head>, nous allons devoir modifier le fichier header.php (si vous l'utilisez dans votre template WordPress). Quel que soit son emplacement, le procédé reste le même. Nous allons vérifier que nous sommes bien sur une page de recherche, puis dans ce cas proposer un affichage légèrement différent.

 <title><?php 
 if ( is_search() ) :
 echo 'Résultats de recherche pour "'.get_search_query().'" | ';
 
 else :
 wp_title('|', true, 'right');
 endif;
 
 bloginfo('name'); 
?></title>


Notre titre ressemblera à cela :

 Pour une page de recherche :
Résultats de recherche pour "Terme" | Titre du site
 Les autres cas :
Titre du post | Titre du site

get_search_query() permet de retourner les termes recherchés.


Optimisation du titre de la page

Il serait intéressant d'afficher un bref résumé de notre recherche dans un titre (<hn>). Ce titre, comme le reste des prochains codes que je fournirai, nous allons le placer sur le fichier search.php qui affiche les résultats de recherche.


<h2> 
 <?php 
  $count = $wp_query->found_posts;
  $several = ($count<=1) ? '' : 's'; //pluriel

  if ($count>0) : $output = $count.' résultat'.$several.' pour la recherche';
  else : $output = 'Aucun résultat pour la recherche';
  endif;

  $output .= ' "<span class="terms_search">'. get_search_query() .'</span>"';
 
  echo $output;
 ?>
</h2>


L'objet $wp_query est une variable globale contenant les résultats de la requête en cours, ici de multiples informations sur notre recherche.

Sur la première ligne nous comptons le nombre de posts trouvés, puis, sur la deuxième $several vaut "s" si nous avons plus de 1 post. Ce dernier point nous permet de gérer le pluriel sur le mot "résultat". Enfin, nous composons notre phrase ($output) sur les conditions de présence ou non de résultats à la recherche.