J'essaie d'afficher 5 messages d'une catégorie dans le pied de page de mon domicile. J'ai placé ce code
<?php query_posts( 'category_name=entertainment&posts_per_page=5' ); ?>
à droite dans mon fichier home.php
et tout fonctionne bien, sauf que plus de 5 messages sont affichés. En fait, il affiche tous les messages de cette catégorie. J'ai aussi essayé showposts=5
mais cela ne fonctionne toujours pas.
c'est le code complet dans mon home.php
<?php query_posts( 'category_name=entertainment&posts_per_page=5' ); ?>
<?php
if (__FILE__ == $_SERVER['SCRIPT_FILENAME']) { die(); }
if (CFCT_DEBUG) { cfct_banner(__FILE__); }
if (have_posts()) {
echo '<ul class="disclosure table group">';
while (have_posts()) {
the_post();
?>
<li>
<?php
if(has_post_thumbnail())
{ the_post_thumbnail();} cfct_excerpt();
?>
</li>
<?php
}
echo '<li class="pagination">', cfct_misc('nav-list'),'</li>';
echo '</ul>';
}
?>
Premièrement: n'utilisez pas query_posts
. Deuxièmement: utilisez $wp_query
à la place:
$args = array (
'category_name' => 'entertainment',
'posts_per_page'=> 5
);
$the_query = new WP_Query( $args );
if ( $the_query->have_posts() ) {
echo '<ul>';
while ( $the_query->have_posts() ) {
$the_query->the_post();
echo '<li>' . get_the_title() . '</li>';
}
echo '</ul>';
/* Restore original Post Data */
wp_reset_postdata();
}
else {
// no posts found
}
Je vous suggère d'utiliser get_posts()
. Avec le code ci-dessous, vous aurez 5 post object-
$args = array (
'category_name' => 'entertainment',
'posts_per_page'=> 5
);
$posts = get_posts($args);
Ici, à la variable $posts
, vous obtiendrez les 5 articles.