Comment afficher les messages populaires par code de catégorie
J'ai ajouter du code
<?php
$popularpost = new WP_Query( array(
'cat'=> 2,
'posts_per_page' => 1,
'meta_key' => 'post_views_count',
'orderby' => 'meta_value_num',
'order' => 'DESC'
) );
query_posts($popularpost);
if (have_posts()) :
while (have_posts()) :
the_post(); ?>
<li><a href="<?php the_permalink() ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
<?php
endwhile;
endif;
wp_reset_query();
?>
mais mon code n'est pas correct.
Des idées?
Vous exécutez deux requêtes en une. Vous ne devriez en exécuter qu’un seul, et certainement pas avec query_posts
. Vous ne devriez jamais utiliser query_posts
Remarque: Cette fonction n'est pas destinée à être utilisée par des plugins ou des thèmes. Comme expliqué plus tard, il existe de meilleures options plus performantes pour modifier la requête principale. query_posts () est une façon trop simpliste et problématique de modifier la requête principale d'une page en la remplaçant par une nouvelle instance de la requête. Il est inefficace (ré-exécute les requêtes SQL) et échouera carrément dans certaines circonstances (particulièrement lorsqu'il s'agit de pagination de publications).
Vous ne devez utiliser WP_Query
ou get_posts
pour des requêtes personnalisées. Votre requête devrait avoir le format suivant
<?php
$popularpost = new WP_Query( array(
'cat'=> 2,
'posts_per_page' => 1,
'meta_key' => 'post_views_count',
'orderby' => 'meta_value_num',
'order' => 'DESC'
) );
if ($popularpost->have_posts()) {
while ($popularpost->have_posts()) {
$popularpost->the_post(); ?>
<li><a href="<?php the_permalink() ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
<?php
}
wp_reset_postdata();
}
?>