J'utilise une version modifiée de Twenty Twelve et j'essaie d'afficher les publications récentes de la même catégorie que la publication actuelle (à l'exception de la publication actuelle) dans la barre latérale.
J'ai commencé comme ça mais quelque chose ne va pas:
$category = get_the_category($post->ID);
$current_cat = $category[0]->cat_name; //This will get me the first category assigned to the current post but since every post has only ONE cat. assigned to, it's good enough
//Next, in my sidebar widget I have this:
$my_query = new WP_Query('category_name='.$current_cat.'&showposts=10');
while ($my_query->have_posts()) : $my_query->the_post();
...display my titles here ...
unset($current_cat); //I'm not sure I need to unset this variable?
endwhile;
Je ne suis pas vraiment un programmeur, alors j'ai du mal à comprendre la logique, mais j'aimerais apprendre. Toute suggestion/aide très appréciée!
Merci Alex
Essaye ça
// Get categories
$categories = wp_get_post_terms( get_the_ID(), 'category');
// Check if there are any categories
if( ! empty( $categories ) ) :
// Get all posts within current category, but exclude current post
$category_posts = new WP_Query( array(
'cat' => $categories[0]->term_id,
'post__not_in' => array( get_the_ID() ),
) );
// Check if there are any posts
if( $category_posts->have_posts() ) :
// Loop trough them
while( $category_posts->have_posts() ) : $category_posts->the_post();
// Display posts
echo get_the_title() . '<br />';
endwhile;
endif;
endif;
Consultez également cette page pour plus d'informations sur WP_Query pour la lecture en boucle des publications et n'oubliez pas de réinitialiser les données postales à l'aide de wp_reset_postdata();
.
Essayez de cette façon:
global $post;
$category = get_the_category($post->ID);
$current_cat = $category[0]->cat_name; //This will get me the first category assigned to the current post but since every post has only ONE cat. assigned to, it's good enough
$my_query = new WP_Query('category_name='.$current_cat.'&showposts=10');
while ($my_query->have_posts()) : $my_query->the_post();
the_title();
unset($current_cat); //I'm not sure I need to unset this variable?
endwhile;