您正在一次运行两个查询。你应该只运行一个,绝对不能使用query_posts
. 永远不要使用query_posts
Note: 此功能不适用于插件或主题。如后文所述,有更好、性能更好的选项来更改主查询。query\\u posts()是一种过于简单且有问题的方法,通过将页面的主查询替换为新的查询实例来修改它。它效率低下(重新运行SQL查询),并且在某些情况下会彻底失败(尤其是在处理POST分页时)。
您应该只使用WP_Query
或get_posts
用于自定义查询。您的查询应具有以下格式
<?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();
}
?>