Voici une petite astuces wordpress pour mettre en place un module « Articles Similaires » sur votre blog. Ce module propose a vos visiteurs plusieurs articles lié à sa lecture actuelle. Vous lui faites découvrir d’autres articles ce qui peut l’aider dans la navigation de votre blog. Un module comme celui-ci permet également de lier les articles entre eux, selon les mêmes tags directement dans la page de l’article. Si votre a par exemple un succès fou, les articles similaires proposé pourront l’être aussi.
Beaucoup d’astuces de ce genre circulent sur les blogs, mais ils ne fonctionnent tout simplement pas. Le problème est lié à la boucle qu’on ouvre ; Cette boucle n’étant pas fermée, tout ce qui suit les articles similaires, comme les commentaires par exemple, seront mélangés. Les commentaires ne seront plus liés à l’article en question. Étrange fonction qui n’a pas encore d’utilité !
Le code et les paramètres
Le code en lui-même est très simple et facile à comprendre. Nous allons utiliser les tags de l’article en cours de lecture pour afficher les articles liés à celui-ci. Concernant l’affichage des articles, plusieurs paramètres sont disponibles. Vous pouvez afficher par exemple les articles similaires par titres, par date, par auteur, par date de modification par ID et aléatoirement. Pour cela il vous suffit de modifier la valeur « orderby ».
Si vous souhaitez supprimer cette valeur optionnelle, vous pouvez. La dernière ligne de ce code permet simplement de fermer définitivement les boucles de WordPress et donc de retourner à l’affichage normal. J’ai commenté quelques lignes pour mieux comprendre.
[php]
-
est l’ordre d’affichge */
- Publié à l'origine le : 9 juin 2009 @ 18 h 45 min
$backup = $post;
$tags = wp_get_post_tags($post->ID);
$tagIDs = array();
if ($tags) {
$tagcount = count($tags);
for ($i = 0; $i < $tagcount; $i++) { $tagIDs[$i] = $tags[$i]->term_id;
}
$args=array(
‘tag__in’ => $tagIDs,
‘post__not_in’ => array($post->ID),
‘showposts’=>7,
‘orderby’=>rand /* author – date – title – modified – parent – ID – rand */
);
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) {
while ($my_query->have_posts()) : $my_query->the_post(); ?>