您正在一次运行两个查询。你应该只运行一个,绝对不能使用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();
} 
?>