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;
}
}
}