文章目录

之前根据评论数量添加了一个热评文章侧边栏,后来想添加一个根据阅读次数排序的热门文章,参考了MoLeft的文章

第一步,添加functions函数

/*热门文章*/
function HotPosts() {
    $archive = Typecho_Widget::widget('Widget_Archive');
    $hotNums = 5; //热门文章数
    $minViews = 10; //最低阅读量
    $db = Typecho_Db::get();
    $select = $db->select()->from('table.contents')
        ->where('table.contents.type = ?', 'post')
        ->where('table.contents.status = ?', 'publish')
        ->limit($hotNums);
    $select->order("table.contents.views", Typecho_Db::SORT_DESC);
    if ($minViews > 0) {
        $select->where('table.contents.views >= ?', $minViews);
    }
    $rows = $db->fetchAll($select);
    foreach ($rows as $row) {
        $HostPostList[] = $archive->filter($row);
    }
    return $HostPostList;
}

第二步,侧栏输出代码

<?php $HotPosts = HotPosts();?>
<?php if (count($HotPosts) > 1): ?>
<div class="widget">
  <h2>热门文章</h2>
        <ul class="widget-list">
        <?php foreach ($HotPosts as $v) {?>
        <li><a title="<?=$v['title'];?>" href="<?=$v['permalink'];?>"><?=$v['title'];?></a></li>
        </ul>
</div>
<?php endif; ?>

最后,自己调整下参数和数量即可。