Améliorer l'affichage des résultats de recherche sur WordPress Affichage des résultats de recherche dans Wordpress

Nos résultats seront affichés grâce à la célèbre Loop de WordPress. Nous n'aurons ainsi qu'à composer la structure d'un élément comme modèle aux différents résultats.

La boucle se compose ainsi :

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> 
<!-- 1) S'il y a au moins un résultat -->
<?php  
endwhile;  
else:  
?>
<!-- 2) Si pas de résultat -->
<?php endif; ?>


1) S'il y a au moins un résultat

Nous allons récupérer les informations de nos articles, info que nous avons listées au début du tutoriel.


 <div class="article_found" id="post-<?php the_ID(); ?>">
<h3>
<a href="<?php the_permalink(); ?>" title="Lire l'article &quot;<?php the_title(); ?>&quot;">
<?php the_title(); ?>
</a>
</h3>
<p class="the_excerpt">
<?php
// si on utilise le résumé alors on l'affiche
if( get_the_excerpt() != '' ) : the_excerpt();

// sinon on le crée à partir du contenu de l'article
else : echo mb_substr( strip_tags( get_the_content() ), 0, 300, "UTF-8" ).'[&hellip;]' ;
endif;
?>
</p>
<p class="metadata">
<a class="url" href="<?php the_permalink(); ?>">
<?php
$permalink = get_permalink();

// si le permalien fait plus de 60 caractères de long on le coupe
if( strlen($permalink) > 60 ) : echo mb_substr( $permalink, 0, 60, "UTF-8" ) . '&hellip'; ?>

// sinon on l'affiche simplement
else : echo $permalink;
endif;
</a>
<time datetime="<?php the_time('Y-m-d'); ?>">
<?php the_time('l d F'); ?>
</time>
</p>
</div>


Ici j'utilise <time> et son attribut datetime. Bien entendu si vous n'êtes pas sur un Doctype HTML5 il faudra remplacer tout ça par un petit <span> et une classe qui va bien.

Le cas du résumé dépend de l'utilisation que vous faites de vos articles. Si vous utilisez les résumés, alors on va les utiliser pour les afficher. Autrement on récupère le contenu que l'ont "nettoie" (avec la fonction substr()) de toutes les balises et qu'on limite à 300 caractères.
Pour le cas du permalien, on l'affiche naturellement s'il fait moins de 60 caractères de long, autrement on le coupe pour ne pas qu'il prenne trop de place. La fonction strlen() permet de compter le nombre de caractères qui composent une chaîne.