Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Typecho自定义调用如热门文章随机文章等

Typecho自定义调用如热门文章随机文章等

作者头像
泽泽社长
发布于 2023-04-17 07:40:16
发布于 2023-04-17 07:40:16
65100
代码可运行
举报
文章被收录于专栏:泽泽社泽泽社
运行总次数:0
代码可运行
Typecho自定义调用如热门文章随机文章等.jpg

Typecho自定义调用

这是面向模板开发者的一篇干货文章,通过学习下面的两个事例,你可以通过调整数据库语句来实现自定义调用文章,如随机文章等。

调用热门文章

functions.php中加入如下代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Widget_Post_hot extends Widget_Abstract_Contents
{
    public function __construct($request, $response, $params = NULL)
    {
        parent::__construct($request, $response, $params);
        $this->parameter->setDefault(array('pageSize' => $this->options->commentsListSize, 'parentId' => 0, 'ignoreAuthor' => false));
    }
    public function execute()
    {
        $select  = $this->select()->from('table.contents')
->where("table.contents.password IS NULL OR table.contents.password = ''")
->where('table.contents.status = ?','publish')
->where('table.contents.created <= ?', time())
->where('table.contents.type = ?', 'post')
->limit($this->parameter->pageSize)
->order('table.contents.views', Typecho_Db::SORT_DESC);
 $this->db->fetchAll($select, array($this, 'push'));
    }
}

然后在前台调用文章时就可以这样写了

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
widget('Widget_Post_hot@hot', 'pageSize=6')->to($hot); ?>
next()): ?>
文章链接:permalink() ?>
文章标题:title(); ?>

这种写法非常原生,使用方法也同typecho调用某分类下的文章语法一致

调用指定文章集合

functions.php中加入如下代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Widget_Post_fanjubiao extends Widget_Abstract_Contents
{
    public function __construct($request, $response, $params = NULL)
    {
        parent::__construct($request, $response, $params);
        $this->parameter->setDefault(array('pageSize' => $this->options->commentsListSize, 'parentId' => 0, 'ignoreAuthor' => false));
    }
    public function execute()
    {
        $select  = $this->select()->from('table.contents')
->where("table.contents.password IS NULL OR table.contents.password = ''")
->where('table.contents.type = ?', 'post')
->limit($this->parameter->pageSize)
->order('table.contents.modified', Typecho_Db::SORT_DESC);

if ($this->parameter->fanjubiao) {
$fanju=explode(",",$this->parameter->fanjubiao);
$select->where('table.contents.cid in ?', $fanju);
}
 $this->db->fetchAll($select, array($this, 'push'));
    }
}

然后在前台调用热门文章时就可以这样写了

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
widget('Widget_Post_fanjubiao@fanjubiao', 'fanjubiao='.$week1)->to($fanju); ?>
next()): ?>
文章链接:permalink() ?>
文章标题:title(); ?>

这种写法非常原生,使用方法也同typecho调用某分类下的文章语法一致

总结

这样的写法只要懂得数据库语句,就可以定制各种自己所需的调用文章!语法贴近原生且内部支持调用各种函数,比如缩略图函数等等!

linkCard('.post-content','0');

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Typecho随机文章与同分类下随机文章的实现
在制作Typecho主题时,有的时候会想弄个随机推荐文章的功能,所以我就简单弄了个函数,可以随机输出n篇文章,同时追加一些参数还可以输出当前文章分类下的随机文章,具体如下: 函数部分
泽泽社长
2023/04/17
4410
Typecho调用热门评论文章和调用最新文章的方法
Typecho程序在设计主题的时候,侧栏有些时候需要调用热评文章或者最新文章。我们可以在指定的位置通过脚本直接调用。在这篇文章中,老蒋准备整理这个调用文章的方法,以后在有需要的模板中可以直接调用使用。其实设计主题就那么回事,静态模板搞定后,就是直接调用。
老蒋
2021/12/24
9580
Typecho最新热门热评文章调用api
因为群友花花弄了个高仿掘金主题,没有实现热门与热评文章加载功能,特此为其分享点代码,先是简单弄了个json版本,后来根据需求又弄了个html的版本
泽泽社长
2023/04/17
5490
Typecho实现文章上一篇下一篇功能
在别人博客看到主题底部都带上一篇下一篇的跳转功能,注意到这一细节后才想到自己的博客主题没有带,夺笋啊这
qiangzai
2021/12/21
6630
Typecho实现文章上一篇下一篇功能
Typecho 程序调用评论数量最多的文章方法
我们在购物的时候是不是希望购买别人也在购买的商品?我们在访问别人网站的时候是不是也想看看网站中有哪些文章也是大家关注的,于是我们会在制作主题模板的时候调用最热门的文章,比如调用评论数最多的,或者是访问量最高的文章。在这篇文章中,老蒋准备整理来自Typecho主题中调用评论最多的文章。
老蒋
2021/12/24
4500
TE获取上一篇/下一篇的链接
这样的会输出同时文章的标题和链接,不是很利于加样式。 不过1.0版的typecho,已经支持更灵活的上下文输出:
泽泽社长
2023/04/17
3340
关于typecho的一些样式代码
循环页面、分类、标签 <!--循环显示页面--> <?php $this->widget('Widget_Contents_Page_List')->to($pages); ?>
用户7146828
2021/08/09
1.3K0
使用分词增强Typecho的搜索功能
本博客是使用Typecho搭建的,侧边提供了搜索功能,然而Typecho内置的搜索功能仅仅只是基于字符串的全匹配查找,功能非常鸡肋,很多合理的查询都没法得到结果,比如“Transformer的文章”、“BERT的相关内容”都没有查询结果,因为文章中都不包含这些字符串
mathor
2021/08/03
1.5K0
Typecho如何利用自定义页面,随机显示(跳转到)一篇文章
当我们的博客文章很多时,无法很直观的展示所有文章给读者,这时候我们可随机给读者显示一篇文章。 下面这个方法也是在网上找的一些教程累积的方法,不需要修改typecho源文件,只需要在主题文件夹下,新建
杨逸轩
2018/06/14
9500
Typecho 随机文章(日志)
Typecho 随机文章调用代码,使用这个代码省的用插件了。 博主作为一个有洁癖的人,做模板能不用插件就尽量不用。
微喵知识
2024/07/22
1100
Typecho 随机文章(日志)
Typecho无插件实现同分类文章上一篇下一篇
这个功能因为自己突然有需要,然后去论坛搜了下发现也有人问过,帖子里有人推荐了个插件可以实现,不过我突然想到个模板函数,就是自定义文章上下篇链接的,好像就可以直接实现,不需要插件。
泽泽社长
2023/04/17
4110
Typecho无插件实现随机文章调用方法
前几天有企业网站客户提到,他们编辑有找其他企业网站交换链接的时候对方嫌弃他们网站没有更新内容,有没有什么办法来解决这个问题。当然实际上他们网站并没有多少内容可以更新的,毕竟企业网站产品添加完毕其他哪里有多少内容。这里老蒋想到的办法就是直接侧栏调用随机文章,然后随机文章标题方便的时间用当天时间。
老蒋
2021/12/24
4810
Typecho教程 - 给主题增加一个热门文章排行榜
今天欣赏我的网站的时候总感觉侧边栏上缺了一点什么,以前的那个flash的仓鼠也不想养了,毕竟在emlog上养了三年。突然我就灵光一闪,不如加个热门文章排行榜,没事还能关心关心自己的文章到底哪个受欢迎。
用砖头敲代码
2022/08/30
4720
Typecho主题开发/二次开发常用代码功能整理备用
目前我们在使用的博客CMS程序中,可能较多的网友会使用WordPress,毕竟提供的免费主题、插件以及文档是比较多的,主要是用户量确实比较多。其次国内的免费博客CMS中,ZBLOG和Typecho是小众用户群,不能说不行,只能说用户量相对比较小。但是老蒋个人认为有用作个人博客日志的还是可以用的。
老蒋
2021/12/24
4790
模块化Typecho随机调用文章 减轻模板页面的体积
今天在帮助客户调整一个企业网站主题的时候发现他的程序是用的Typecho,但是侧栏的随机文章是使用的直接SQL代码调用的,感觉比较麻烦,于是我准备寻找一款直接定义函数的调用,这样就可以减少主题页面模板的代码体积,本身我们在使用Typecho就要考虑到轻便。
老蒋
2021/12/24
2030
Typecho 调取随机文章
10 代表随机调用 10 篇文章,可以在需要的位置调用,例如博主就在主题目录下的 footer.php 文件中加入了如下代码:
宋天伦
2020/07/16
9480
Typecho 调取随机文章
Typecho——如何查看已经提供的方法是否支持传入参数
最近在开发EasyBe主题,打算对侧边一些列表展示数量做成后台可配置的,但是有些列表使用的是typecho本身提供的一些方法,本来打算在function.php中来重写,然后想了下是不是可以看看对应的源码,一看源码才知道原来有些方法是支持传参的;
思索
2024/08/15
1520
Typecho上下篇文章代码输出文章缩略图
本篇文章虽说是教大家如何调用上下篇文章缩略图的,但是实则是探讨一种船新的函数写法。在正式教程开始之前,首先我们需要先写个缩列图函数,如下:
泽泽社长
2023/04/17
8040
Typecho访问固定链接随机跳转到某一篇文章的方法
这算是个小功能吧。访问固定链接,每次打开都会随机跳转到某一篇文章。(不是随机文章列表!) 👇🏻举个栗子👇🏻下面的链接每次打开,都是不同文章。 随机文章 创建主题模板文件 打开服务器目录至/theme
目的地-Destination
2023/03/06
5710
Typecho获取随机文章函数
需要使用时在模板中调用即可,这个随机文章函数的好处就是不光兼容mysql还兼容sqlite数据库。
泽泽社长
2023/04/17
6950
相关推荐
Typecho随机文章与同分类下随机文章的实现
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验