[AUTOMATIQUE] Cet article a plus de 5 ans.
Il se peut donc que les informations qu'il fournit ne soient plus totalement exactes.

Pour augmenter le trafic sur votre site et améliorer la durée moyenne de connexion sur celui-ci, il peut être très intéressant de proposer en bas de page des articles similaires.

Nous allons utiliser les tags pour trouver les articles similaires à celui que l’internaute est en train de lire. Une fois à la fin de l’article, il verra une proposition d’articles sur les mêmes thèmes.

C’est ce script que j’utilise en bas de mes articles. J’utilise également les « images à la une » des articles en question pour pouvoir les afficher, et une mise en forme CSS adaptée à ma charte graphique.

Je vais commencer par vous donner le script de « base » puis pour ceux qui le souhaitent, nous irons un peu plus loin pour arriver à un résultat similaire à celui de mon site.

Le script de base

Ce script est simple dans le fond et la forme, il va aller chercher les tags similaires dans d’autres articles et les afficher sous forme de liste. Vous pouvez choisir le nombre d’articles que vous voulez voir apparaitre. Par ailleurs, le titre étant dans une condition php, si vous n’avez pas encore de billet similaire, le titre ne s’affichera pas.

<?php
$tags = wp_get_post_tags($post->ID);
if ($tags) {
$tag_ids = array();
foreach($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id;

$args=array(
'tag__in' => $tag_ids,
'post__not_in' => array($post->ID),
'showposts'=>5, // Le nombre de postes similaires à afficher.
'caller_get_posts'=>1
);
$my_query = new wp_query($args);
if( $my_query->have_posts() ) {
echo '<h3>Articles similaires</h3><ul>';
while ($my_query->have_posts()) {
$my_query->the_post();
?>
<li><a href="<?php the_permalink() ?>" rel="bookmark" title="Lire l'article <?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
<?php
}
echo '</ul>';
}
}
?>

Je vous conseils de coller ce code directement sous les balises :

<?php the_content();?>

Vous pouvez évidemment le place ailleurs, mais pour commencer et vous ça fonctionne bien, commencez par là.

Le script améliorer avec gestion des miniatures

<h5>Articles similaires</h5>
<?php
$tags = wp_get_post_tags($post->ID);
if ($tags) {
$tag_ids = array();
foreach($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id;

$args=array(
'tag__in' => $tag_ids,
'post__not_in' => array($post->ID),
'showposts'=>3,
'caller_get_posts'=>1
);
$my_query = new wp_query($args);
if( $my_query->have_posts() ) {
while ($my_query->have_posts()) {
$my_query->the_post();
$imageURL = wp_get_attachment_url( get_post_thumbnail_id($post->ID) )

?>

<span class="page-image">
<a href="<?php the_permalink() ?>" title="<?php the_title_attribute(); ?>"><img title="<?php the_title(); ?>" alt="_" src="<?php print $imageURL;?>"/></a>
</span>

<h2 class="portfolio-h2">
<a href="<?php the_permalink() ?>"><?php the_title(); ?></a>
</h2>

<?php
}
}
wp_reset_query();
}
?>

J’ai ajouté quelques variables dans la boucle de sorte à aller chercher l’url de l’image attachée à l’article (image à la une). Je « print » ensuite cette url simplement dans la source de mon image et le tour est joué.

Pour les plus novices, il existe de nombreux plugins similaires mais ils ne sont pas aussi personnalisables qu’un bon vieux bout de code !

Je vous laisse le privilège de gérer votre mise en forme CSS.

Article rédigé parBrice CAPOBIANCO

Autodidacte passionné par WordPress. J'aime apprendre et créer pour ensuite partager !

Coorganisateur des Meetups WordPress Rennes et fondateur de bweb.
Partager cet article

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Afficher les 7 commentaires

7 commentaires

  1. Génial ! Ça marche !

    Merci pour le code. Je vais lui trouver une application en lieu et place de la liste de mes 4 derniers articles en footer.

  2. Salut Céline,
    je vois ce que tu veux dire mais je ne peux t’aider avec si peu d’informations.
    Où as tu coller le script ? juste après les balises
    Vu le type d’erreur, je dirais qu’il s’agit d’une erreur au niveau de la boucle de récupération des commentaires. Pour vérifier celà, regarde si tes commentaires correspondent à ceux laissez dans les articles similaires qui apparaissent dans ta page. Si c’est bien ça, tien moi au courant que je puisses t’aider.

    Brice

  3. J’ai essayé ton script qui marche très bien. Cependant un très gros problème est vite venu. Les commentaires qui s’affichaient ne correspondaient pas aux bons articles.