一直想给我的主题添加一个热门文章侧边栏,但是网上找到的都是一些最新文章和热评文章的教程。所以,功夫不负有心人,还是有按照阅读次数排序的最热文章教程,在这里分享给大家,希望各位用的到!
教程
1.把下面的代码放到主题的 functions.php 中
/*热门文章*/
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;
}
2.在 sidebar.php 合适的位置引用,下面是我自己的样式,仅供参考
<?php $HotPosts = HotPosts();?>
<?php if (count($HotPosts) > 1): ?>
<div class="widget widget-tops">
<ul class="widget-nav"><li class="active">热门文章</li></ul>
<ul class="widget-navcontent">
<li class="item item-01 active">
<ul>
<?php foreach ($HotPosts as $v) {?>
<li><a title="<?=$v['title'];?>" href="<?=$v['permalink'];?>">
<?=$v['title'];?>
</a></li>
<?php }?>
</ul>
</li>
</ul>
</div>
<?php endif; ?>
3.文章显示数量和最低的浏览量可以按照注释自行修改
如若转载,请注明出处:https://www.ozabc.com/jianzhan/14412.html