按最近的评论排序帖子

时间:2012-02-07 作者:Kevin

伙计们,我非常想找到这个问题的答案,我需要wp查询按最近的评论排序,这样我就可以输出最近被评论过的帖子(我正在尝试获取类似于最近活动/最新消息?的东西,就像在vBulletin论坛中一样)。我已经搜索了整个互联网,找到了一些解决方案,但没有一个真的管用-s

1 个回复
SO网友:tollmanz

您可以使用以下代码,首先获取最新的评论,然后使用与这些评论关联的post\\u id,查询数据库中的这些帖子:

// Get the 5 most recent comments
$recent_comments = get_comments( array(
    \'orderby\' => \'comment_date\',
    \'number\' => 5
) );

// If there are any posts with comments
if ( count( $recent_comments ) > 0 ) {

    // Get the post ID associated with each comment
    $post_ids = array();
    foreach ( $recent_comments as $comment )
        $post_ids[] = $comment->comment_post_ID;

    // Query for the posts with the IDs collected
    $posts_with_recent_comments = new WP_Query( array(
        \'post__in\' => array_unique( $post_ids )
    ) );

    // Get your loop on
    if ( $posts_with_recent_comments->have_posts() ) {
        while ( $posts_with_recent_comments->have_posts() ) {
            $posts_with_recent_comments->the_post();
        }
    }
}
需要注意的一个问题是,使用此代码您不会总是收到5篇帖子。这个get_comments 如上所示的函数将返回网站上最近的5条评论。如果这些评论中有3条是在同一篇文章上,那么实际上只有3个唯一的帖子ID可以发送到帖子的查询中。这段代码向您展示了完成工作的一般方法,您需要花一些时间来解决我提出的问题。

结束

相关推荐

QUERY_POST在多个方向排序

我试图通过使用多个标准来改进我的帖子排序,但我希望为不同的值指定特定的顺序。例如,我有一个名为“featured”的meta\\u键,我想将任何帖子移至顶部。要匹配“特色”,应按标题排序。问题是,我只能在query\\u posts函数中定义一个“order”键。$args=array( \'post_type\' => \'portfolio-item\',