在wordpress中按类别显示最受欢迎的帖子


Displaying most popular post by category in wordpress

各位程序员早上好!

我遇到了一点麻烦,我认为这是循环中的,但我已经梳理WP编码了好几天了,尽管我知道它就在我眼皮底下,但我还是无法让它正常工作!

目标相当简单。我正在努力建造一个场地&现场音乐评论网站有大约30个类别,其中6个是父母,其余是孩子,父母为孩子们提供包罗万象的服务。IE:音乐(家长)涵盖嘻哈,R&B、 等等。在索引上,我需要设置它,以便在父母和他们相关的孩子中最受欢迎的帖子摘录(按视图)显示为6个主要类别中每一个的头条新闻。我在functions.php中设置了getpostviews和setpostviews函数,在single.php中设置了setpostview函数,我尝试在查询中设置"category_name=#",因为这应该包括孩子,我尝试通过"cat_id=#"进行查询,我试着把它们都取出来,然后排除我不想要的,我一直得到最受欢迎的帖子,所以我不知所措。

该网站目前位于chronic.spearsolutions.com,您可以看到我为获取/设置后视图提供的特定代码,以及中的循环

我很确定我只是在循环中做错了什么,但我并不骄傲地承认这一点或寻求帮助。永远"还在学习"是游戏的名称

提前感谢Nick

好吧,我将首先计算最受欢迎的帖子。要做到这一点,让我们在单个页面中排列一些视图计数代码(根据您的首选条件更改is_single())

例如:

define('WS_META_COUNT', 'ws93_view_count');
if(!is_admin()){
    add_action('template_redirect', 'wpse3VideoSetView');
}
function wpse3VideoSetView($postId = null){
    // substitude / add / remove your video count conditions here.
    if(!is_single())
        return;
    $id = !empty($postId) ? $postId : get_the_ID();
    $current = ( int ) get_post_meta( $id , WS_META_COUNT , true);
    $current ++;
    update_post_meta( $id , WS_META_COUNT , $current );
}

现在,在查询时,我可以构造一个查询并打印,例如:

$args = array('numberposts'  => -1,  /* get 4 posts, or set -1 for all */
                'orderby'      => 'meta_value',  /* this will look at the meta_key you set below */
                'meta_key'     => WS_META_COUNT,
                'order'        => 'DESC',
                'post_type'    => 'post'  /* Replace your post type here */,
                'post_status'  => 'publish');
    $query = new WP_Query( $args );
    if ( $query->have_posts() ) {
    echo '<ul>';
    while ( $query->have_posts() ) {
        $query->the_post();
        echo '<li>' . get_the_title() . '</li>';
    }
    echo '</ul>';
    }
    wp_reset_postdata();

这实际上取决于您现在想要如何表示您的数据。对于子类别的帖子,请查询。如果你给我一个更清晰的例子,我可以给你一个更好的查询。