wordpress获取指定多少天内的热评文章列表

使用WordPress获取指定多少天内的热评文章列表

1. 了解WordPress查询参数

在使用WordPress获取指定天数内热评文章列表之前,需要了解WordPress查询参数。WordPress查询参数是指为了满足查询需要而在WordPress中特定的参数,例如 orderbyorder 等。在使用WordPress进行文章查询时,可以利用这些参数对查询进行排序、筛选等处理。

2. 获取热评文章列表的函数

为了获取指定天数内的热评文章列表,可以利用WordPress自带的get_comments()函数和WP_Query类来实现。先通过get_comments()函数获取最近n天内的评论,然后将评论对应的文章按照评论数排序,最后使用WP_Query类进行文章查询。

function get_popular_posts( $days = 7, $count = 10 ) {
    $popular_ids = array();
    // 获取最近 $days 天内的评论
    $comments = get_comments( array(
        'status' => 'approve',
        'number' => $count * 3,
        'days'   => $days
    ) );
    // 统计评论对应的文章的评论数
    $post_count = array();
    foreach ( $comments as $comment ) {
        $post_id = $comment->comment_post_ID;
        if ( isset( $post_count[ $post_id ] ) ) {
            $post_count[ $post_id ] += 1;
        } else {
            $post_count[ $post_id ] = 1;
        }
    }
    // 获取评论数最多的 $count 篇文章
    uasort( $post_count, function( $a, $b ) {
        if ( $a == $b ) {
            return 0;
        }
        return ( $a > $b ) ? -1 : 1;
    } );
    $popular_posts = array_slice( $post_count, 0, $count, true );
    foreach ( $popular_posts as $id => $count ) {
        $popular_ids[] = $id;
    }
    // 返回查询文章的 WP_Query 对象
    return new WP_Query( array(
        'post_type'      => 'post',
        'post__in'       => $popular_ids,
        'posts_per_page' => $count,
        'orderby'        => 'post__in',
        'ignore_sticky_posts' => true
    ) );
}

3. 显示热评文章列表

获取到热评文章列表后,可以使用while循环来显示文章列表,并提供文章标题、元信息等基本信息,例如:

$popular_posts = get_popular_posts( 7, 10 );
if ( $popular_posts->have_posts() ) :
    echo '<ul>';
    while ( $popular_posts->have_posts() ) : $popular_posts->the_post();
        echo '<li><a href="'%20.%20get_permalink()%20.%20'">' . get_the_title() . '</a></li>';
    endwhile;
    echo '</ul>';
endif;

以上就是使用WordPress获取指定天数内的热评文章列表的方法和步骤。

晓白博客网版权所有,原文地址https://www.xbnb.cn/5124
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容