Typecho 非插件实现热评文章调用

热评文章即网站中被评论次数最多的文章,一般热评文章、热门文章和随机文章是网站常用的排行文章模块,那么 typecho 网站要如何在页面中显示评论最多的文章列表?

1、在当前主题的 functions.php 文件中添加以下函数代码:

function getHotComments($limit = 10){
    $db = Typecho_Db::get();
    $result = $db->fetchAll($db->select()->from('table.contents')
        ->where('status = ?','publish')
        ->where('type = ?', 'post')
        ->where('created <= unix_timestamp(now())', 'post') //添加这一句避免未达到时间的文章提前曝光
        ->limit($limit)
        ->order('commentsNum', Typecho_Db::SORT_DESC)
    );
    if($result){
        foreach($result as $val){            
            $val = Typecho_Widget::widget('Widget_Abstract_Contents')->push($val);
            $post_title = htmlspecialchars($val['title']);
            $permalink = $val['permalink'];
            echo '<li><a href="'.$permalink.'" title="'.$post_title.'" target="_blank">'.$post_title.'</a></li>';        
        }
    }
}

2、在要调用热评文章位置对应的模板文件(如index.php、single.php、sidebar.php或page.php等)添加调用代码:

<?php getHotComments('10');?>

代码中的10表示要调用的文章数量。

最后修改:
赞赏支持
最大的开心,莫过于你请我吃辣条

发表评论