首页>建站相关>Typecho奇妙错误size() must be an instance of Typecho_Db_Query

Typecho奇妙错误size() must be an instance of Typecho_Db_Query

遇到一个很有意思的错误,当然之所以有意思是因为这个问题有了答案,起因是这样的,在“theme.abddb.com”的测试站点上愉快的写着主题模块,实现了按目录列表之后,想把文章列表给加上,因为主站有现成的文章列表+分页器代码,本着拿来就用的精神,直接用在了测试站点上。然而点击任意文章的时候,就出现了这样一个错误。

Argument 1 passed to Widget_Abstract_Contents::
size() must be an instance of Typecho_Db_Query, null given, 
called in /usr/share/nginx/html/theme/var/Widget/Archive.php on line 565

删除掉新添加的模块后,点击又变正常了。重新添加后问题当然毫无意外的重复出现,百度了一下同类错误,CSDN上有一位朋友说这个问题与分页器相关,于是把之前“文章列表+分页器”的代码拆分,删除掉了分页器的代码:

<nav class="nav-pagination">
<?php $this->pageNav('<', '>', 1, '...', 
array('wrapTag' => 'ul', 'wrapClass' => 'pagination-list', 'itemTag' => 'li',  'textTag' => 'a', 'currentClass' => 'pagination-active', 'prevClass' => 'pagination-prev', 'nextClass' => 'pagination-next')); ?>
</nav>

问题居然就解决了,恩,那就不用分页器好了......但是不对啊,这个模块好歹已经寂寞而稳定的在主站跑了一年多了啊。认真对照了一下主站与分站的模板文件,发现主站多了一个“post.php”文件。

post.php

在wordpress中,用于单篇文章展示的页面是“single.php”,如果主题没有这个文件的话,主题会退求其次,用“index.php”这个模板来套现,在Typecho中也是一样的逻辑,在没有这个“post.php”文件的时候,用“index.php”这个模板来套现。

奇妙的分页器

博主的测试站就遇到了这样的问题,整理主题的时候缺什么写什么,因为暂时没有写到单篇文章页,所以也没有添加这个“post.php”文件,在没有加分页器之前,“index.php”一直很尽职尽责的实现代替功能,但加了分页器之后,这个代替逻辑似乎就出了故障。

解决方案

直接在主题里添加了一个空白的“post.php”文件,链接就能够正常跳转了,因为文件里暂时没有写内容,所以是跳转到一个空白的页面。如果亲也遇到了相似的问题,可以检查一下主题文件中是否缺少几个相关的可被代替但又不是一直可被代替的文件。

标签: typecho

移动端可扫我直达哦~

推荐阅读

typecho 2024-04-20

typecho根据标签的slug name信息判断是否输出免责声明

博主是从事机械行业的,工作过程中接触了很多二手老旧的设备,因为是二手设备,不缺胳膊少腿能正常运行已是难得,完善的说明书与售后服务想都不要想了。所以找设备的说明书成了一项附加的工作,总得让设备正常运行起来,偶尔设备有个小病小痛的,也不能...

建站相关 typecho

typecho 2023-11-02

Typecho开发文档-Widget设计文档

什么是WidgetWidget是组成Typecho的最基本元素,除了已经抽象出来的类库外,其它几乎所有的功能都会通过Widget来完成.在实践中我们发现,在博客这种小型但很灵活的系统中实施一些大型框架的思想是不合适的,它会使系统灵活性...

建站相关 typecho

typecho 2023-10-25

Typecho默认路由表一览

路由器(Route)路由器(Route)是Typecho系统中的一个重要组件,类似mod_rewrite的机制,来实现独立的URL和指定的controller/action/params的映射规则.它通过识别诸如http://loca...

建站相关 typecho

typecho 2023-10-21

Typecho自动更新指定文章内容的尝试

曾经在老的博客(wordpress)里尝试并且成功运行过的一个方案,定时去请求某个比如“每天60秒读懂世界”这样的api,获取到数据,然后根据数据更新某一篇博文的内容。因为有“轻微”的强迫症,所以习惯把不用的东西直接“rm -rf”删...

建站相关 typecho

typecho 2023-10-21

Typecho数据库常用API

表的创建和删除在Typecho插件开发过程中,往往需要创建自己的表。上文提到Typecho_Db类中的query函数,可用于执行所有sql语句,因此我们使用query()来进行表的创建、修改或者删除。$db= Typecho_Db::...

建站相关 typecho

typecho 2023-10-18

让typecho博客支持显示数学公式

MathJax是一个开源的基于Ajax的数学公式显示的解决方案,结合多种先进的Web技术,支持主流的浏览器。MathJax根据页面中定义的LaTex数据,生成对应的数学公式。具体可见:mathjax项目代码(GitHub)因为是利用j...

建站相关 typecho

typecho 2023-10-15

为Typecho编辑器增加HTML标签支持

这几天为Typecho编辑器基本不支持块级元素而困扰,在github上翻编辑器插件的时候意外看到有位望友说可以去修改Hyperdown.php文件以增加对HTML标签的支持。该文件位于:build/var/HyperDown.php需...

建站相关 typecho

typecho 2023-10-12

typecho为什么更换主题后部分图片无法正确显示

其实严格的说,这可能是博主自己主题的问题,但人类的悲欢偶尔相通么,没准也可能在其他的主题中遇到类似的。博主之前边写博客边修改拼凑了一个比较简陋的主题,使用一段时间后,觉得主页过于单调了,于是在23年的国庆前后对主题整体做了一个比较大的...

建站相关 typecho