实在想不到什么什么名了,暂且称为“异曲同工”吧,因为我之前发过【Typecho教程 - 给主题增加一个热门文章排行榜】,其实代码都一样,就是在数据库查询的条件不同。
我们将查询条件从views
改成created
就可以了,然后有些不必要的条件就可以删掉了。最后将代码加到functions.php
或者其他能引用到的文件里面。
/*最新文章*/
function NewPosts() {
$archive = Typecho_Widget::widget('Widget_Archive');
$newNums = 5; //显示文章数量
$db = Typecho_Db::get();
$select = $db->select()->from('table.contents')
->where('table.contents.type = ?', 'post')
->where('table.contents.status = ?', 'publish')
->limit($newNums);
$select->order("table.contents.created", Typecho_Db::SORT_DESC);
$rows = $db->fetchAll($select);
foreach ($rows as $row) {
$newPostList[] = $archive->filter($row);
}
return $newPostList;
}
函数改了之后,侧边栏的布局代码我们也得改动一下。
<?php $newPosts = newPosts();?>
<?php if (count($newPosts) > 1): ?>
<div class="mdui-card sidebar-info mdui-shadow-10">
<ul class="mdui-list">
<div class="sidebar-reply-title">最新文章</div>
<li class="mdui-divider mdui-m-y-0"></li>
<?php foreach ($newPosts as $v) {?>
<a title="<?=$v['title'];?>" href="<?=$v['permalink'];?>">
<li class="mdui-list-item mdui-ripple sidebar-reply-list"><div class="sidebar-reply-text"><?=$v['title'];?></div></li>
<li class="mdui-divider"></li>
</a>
<?php }?>
</ul>
</div>
<?php endif;?>
然后将代码放到侧边栏的合适位置就可以显示了
这篇文章其实就是照扒【Typecho教程 - 给主题增加一个热门文章排行榜】的,代码未经测试,如果用不了的话评论区说一下,我在修改(这可能是继html实体和Vmware激活码之外的最牛水文了)。
如无特殊说明《Typecho教程 - 给主题侧边栏添加最新文章》为博主MoLeft原创,转载请注明原文链接为:https://moleft.cn/post-121.html