按类别代码显示热门帖子

时间:2015-03-19 作者:DinhTv

如何按类别代码显示热门帖子

我有添加代码

<?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(); 
?>
但我的代码不正确。

有什么想法吗?

1 个回复
最合适的回答,由SO网友:Pieter Goosen 整理而成

您正在一次运行两个查询。你应该只运行一个,绝对不能使用query_posts. 永远不要使用query_posts

Note: 此功能不适用于插件或主题。如后文所述,有更好、性能更好的选项来更改主查询。query\\u posts()是一种过于简单且有问题的方法,通过将页面的主查询替换为新的查询实例来修改它。它效率低下(重新运行SQL查询),并且在某些情况下会彻底失败(尤其是在处理POST分页时)。

您应该只使用WP_Queryget_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();
} 
?>

结束

相关推荐

分页不使用WP_QUERY

我已经设置了一个自定义循环,它工作正常,但不会显示分页链接。在进行了一些搜索之后,我了解到分页链接(因为我在这里使用了它们,但我不知道还有其他方法)只支持原始循环,但我遇到的所有“解决方案”都告诉我,如果我在wp\\u查询中显式声明$paged参数,它应该可以工作,如果没有,我应该使用query\\u posts。这似乎是一个含糊不清的答案,我想知道如何使其与WP\\U查询一起工作,因此下面是我从各种来源拼凑而成的代码:<?php global $paged; $paged = (g