MENU

Typecho教程 - 给主题侧边栏添加最新文章

• April 11, 2020 • 教程

异曲同工

实在想不到什么什么名了,暂且称为“异曲同工”吧,因为我之前发过【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激活码之外的最牛水文了)。

Last Modified: May 26, 2020
Archives 下载海报
QR Code for this page
Tipping QR Code