前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Typecho教程 - 给主题侧边栏添加最新文章

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

作者头像
MoLeft
发布2022-08-30 11:16:07
4660
发布2022-08-30 11:16:07
举报
文章被收录于专栏:用砖头敲代码

异曲同工

实在想不到什么什么名了,暂且称为“异曲同工”吧,因为我之前发过【Typecho教程 - 给主题增加一个热门文章排行榜】,其实代码都一样,就是在数据库查询的条件不同。

稍加修改

我们将查询条件从views改成created就可以了,然后有些不必要的条件就可以删掉了。最后将代码加到functions.php或者其他能引用到的文件里面。

代码语言:javascript
复制
/*最新文章*/
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;
}

函数改了之后,侧边栏的布局代码我们也得改动一下。

代码语言:javascript
复制
<?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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 异曲同工
  • 稍加修改
  • 末尾的话
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档