Comment afficher les articles liés par catégorie
-
-
duplicationpossible de [Comment afficher les articles associés de lamême catégorie?] (http://wordpress.stackexchange.com/questions/30039/how-to-display-related-posts-from-same-category)possible duplicate of [How to display related posts from same category?](http://wordpress.stackexchange.com/questions/30039/how-to-display-related-posts-from-same-category)
- 0
- 2012-02-05
- kaiser
-
2 réponses
- votes
-
- 2012-02-05
La question a déjà étéposéeet la réponse a également étépubliée,
Comment afficher les articles associés de lamême catégorie?
Ajoutez ce code dans votre single.php après uneboucle à l'endroit où vous souhaitez afficher lemessage associé,
<?php $related = get_posts( array( 'category__in' => wp_get_post_categories($post->ID), 'numberposts' => 5, 'post__not_in' => array($post->ID) ) ); if( $related ) foreach( $related as $post ) { setup_postdata($post); ?> <ul> <li> <a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a> <?php the_content('Read the rest of this entry »'); ?> </li> </ul> <?php } wp_reset_postdata(); ?>
Il affichera lemessage associé de lamême catégorie avec l'extraitet letitre dumessage, cependant,si vous souhaitez que ce code affiche uniquement letitre dumessage associé,supprimez cette ligne,
<?php the_content('Read the rest of this entry »'); ?>
The question has already been asked and the answer has been posted too,
How to display related posts from same category?
Add this code inside your single.php after a loop wherever you want to show related post,
<?php $related = get_posts( array( 'category__in' => wp_get_post_categories($post->ID), 'numberposts' => 5, 'post__not_in' => array($post->ID) ) ); if( $related ) foreach( $related as $post ) { setup_postdata($post); ?> <ul> <li> <a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></a> <?php the_content('Read the rest of this entry »'); ?> </li> </ul> <?php } wp_reset_postdata(); ?>
It will display related post from the same category with the post excerpt and title , however if want this code to display just the title of related post then remove this line,
<?php the_content('Read the rest of this entry »'); ?>
-
désoléje suisnoob dans wordpresset PHP.Si celane vous dérangepas,pourriez-vousme dire commentmettre ce code dansmon single.php??sorry I am noob in wordpress and PHP.If yu dont mind, could yu tell me how to put that code in my single.php??
- 0
- 2012-02-05
- Felix
-
relirema réponsej'ai ajouté quelques détails supplémentaires (TESTÉ)read my answer again i have added few more details (TESTED)
- 1
- 2012-02-05
- Sufiyan Ghori
-
Vouspouvez (peut-être)fermer le voteen double?You can (maybe) close vote as dublicate?
- 0
- 2012-02-05
- kaiser
-
@Xufyan ce codeme montre l'erreur suivante lorsqueje l'ai utilisé après le commentaire Erreurfatale: Appel à lafonctionindéfinie odd_title ()@Xufyan that code shows me ethe following error when i used it after the comment Fatal error: Call to undefined function odd_title()
- 0
- 2012-02-05
- Felix
-
désolé,remplacez "ODD"par "le" dans le code ci-dessussorry, replace 'ODD' with 'the' in the above code
- 1
- 2012-02-05
- Sufiyan Ghori
-
@Xufyan Sije prends cetteerreuren faisant la ligne Php ADDtitle (30);?> Jene reçois aucunmessage,je reçoisjuste cinqpuces sansmessageni titre@Xufyan If i yake that error making line I get no post i just get five bullets with no post or title
- 0
- 2012-02-05
- Felix
-
l'erreurest supprimée du codeet maintenant celafonctionneparfaitementbien (Testé),copiez le codemodifié dema réponsethe error is removed from the code and now it is working perfectly fine (Tested), copy the modified code from my answer
- 1
- 2012-02-05
- Sufiyan Ghori
-
@Xufyan Maismaintenant,ilne montre que letitre dumessage avec un lienperma: \ des conseils??@Xufyan But now it shows only the post title with perma link :\ any tips??
- 0
- 2012-02-05
- Felix
-
cela signifie que vous avez supprimé cette ligne de code,, ajoutez-le là oùil étaitit means you have removed this line of code, , add it back where it was
- 1
- 2012-02-05
- Sufiyan Ghori
-
@Xufyannonje ne retirepas la ligne.Essayéencore unefois,ilme montre letitre avec un lienperma.@Xufyan no I dint take off the line.Tried again still it shows me the title with perma link.
- 0
- 2012-02-05
- Felix
-
laissez-nous [continuer cette discussion dans le chat] (http://chat.stackexchange.com/rooms/2392/discussion-between-felix-and-xufyan)let us [continue this discussion in chat](http://chat.stackexchange.com/rooms/2392/discussion-between-felix-and-xufyan)
- 0
- 2012-02-05
- Felix
-
C'estbien mieux que la réponse à laquelle vous vous êtes liéThis is way better than the answer to which you linked
- 0
- 2014-09-04
- Claudiu Creanga
-
- 2018-07-02
Voici une autre optionpropreet trèsflexible:
Mettez ce code dans votrefichierfunctions.php
function example_cats_related_post() { $post_id = get_the_ID(); $cat_ids = array(); $categories = get_the_category( $post_id ); if(!empty($categories) && is_wp_error($categories)): foreach ($categories as $category): array_push($cat_ids, $category->term_id); endforeach; endif; $current_post_type = get_post_type($post_id); $query_args = array( 'category__in' => $cat_ids, 'post_type' => $current_post_type, 'post_not_in' => array($post_id), 'posts_per_page' => '3' ); $related_cats_post = new WP_Query( $query_args ); if($related_cats_post->have_posts()): while($related_cats_post->have_posts()): $related_cats_post->the_post(); ?> <ul> <li> <a href="<?php the_permalink(); ?>"> <?php the_title(); ?> </a> <?php the_content(); ?> </li> </ul> <?php endwhile; // Restore original Post Data wp_reset_postdata(); endif; }
Maintenant,vouspouvez simplement appeler lafonctionn'importe où sur votre siteen utilisant:
<?php example_cats_related_post() ?>
Vouspouvez supprimer les éléments de la liste ou les styliser selon vosbesoins.
Here another clean and very flexible option:
Put this code in your functions.php file
function example_cats_related_post() { $post_id = get_the_ID(); $cat_ids = array(); $categories = get_the_category( $post_id ); if(!empty($categories) && is_wp_error($categories)): foreach ($categories as $category): array_push($cat_ids, $category->term_id); endforeach; endif; $current_post_type = get_post_type($post_id); $query_args = array( 'category__in' => $cat_ids, 'post_type' => $current_post_type, 'post_not_in' => array($post_id), 'posts_per_page' => '3' ); $related_cats_post = new WP_Query( $query_args ); if($related_cats_post->have_posts()): while($related_cats_post->have_posts()): $related_cats_post->the_post(); ?> <ul> <li> <a href="<?php the_permalink(); ?>"> <?php the_title(); ?> </a> <?php the_content(); ?> </li> </ul> <?php endwhile; // Restore original Post Data wp_reset_postdata(); endif; }
Now you can simply call the function anywhere in your site using:
<?php example_cats_related_post() ?>
You may want to remove the list elements or style them as per your need.
Dansmon site degalerie,je veuxmontrer d'autresimages sous l'image actuelle (en un seulpost).J'ai vuplus de codesmaisje demande à spécifier la catégorie,maisje ne veuxpas spécifier la catégoriemanuellement dans le code Je veux que le code lui-même obtienne l'identifiant ou lenom de la catégorie.Ce seraitbeaucoupplusfacilepourmoi sij'obtiens desmessages completsau lieu dutitre de l'articlepour queje puisse l'afficher comme dans lamaisonet la catégorie