アルファサード株式会社 代表取締役 野田 純生のブログ


Movable Typeで最近 n日にコメントされた数を基準に注目記事を表示させる


公開日 : 2016-03-07 17:19:32


人気記事を表示するのに GoogleAnalyticsを使ってページビューの順に表示させるという方法(PowerCMSなど)がありますがコメント機能が使われていてコメントが活発にやりとりされているサイトの場合、最近 n日のコメント数を基準にするという方法もありますね。話題になっている記事を抽出するのになかなか適した方法かと思います。

https://github.com/junnama/mt-plugin-lively-discussion-entries

<mt:LivelyDiscussionEntries days="7">
# mt:Entriesと同じタグが利用できる
</mt:LivelyDiscussionEntries>

このような処理の時は MT::Object の count_group_byメソッドを使います。

my $group_iter = MT->model( 'comment' )->count_group_by( {
                                            blog_id => $blog_id,
                                            visible => 1,
                                            created_on => { '>' => $ts } } , {
                                            (),
                                            group => [ 'entry_id' ],} );
my $ids = {};
while ( my ( $count, $entry_id ) = $group_iter->() ) {
    $ids->{ $entry_id } = $count;
}
my $i = 0;
my @entries;
for my $entry_id (sort { $ids->{ $b } <=> $ids->{ $a } } keys %$ids) {
    my $entry = MT->model( 'entry' )->load( $entry_id );
    if ( $entry && $entry->status == MT::Entry::RELEASE() ) {
        push ( @entries, $entry );
        $i++;
        if ( $i >= $lastn ) {
            last;
        }
    }
}


このブログを書いている人
野田純生の写真
野田 純生 (のだ すみお)

大阪府出身。ウェブアクセシビリティエバンジェリスト。 アルファサード株式会社の代表取締役社長であり、現役のプログラマ。経営理念は「テクノロジーによって顧客とパートナーに寄り添い、ウェブを良くする」。 プロフィール詳細へ