Typecho核心代码错误可能会导致分类重复
原链接:http://www.pcwuyu.com/index.php/website-building/typecho-main-code-bug.html
原分类:网站建设
最近非常多的Microbox主题用户跟我抱怨说自己的分类列表老是出现重复的情况,我给出的方法就是改名或者删除分类来解决问题,但是我知道这并不是一劳永逸的方法,于是我就无耻的给Typecho进行开膛手术,Google一查,发现这竟然是Typecho核心代码的缺陷。距离上一次报告这个BUG已达2年之久,相信@70会在0.8.1修复这个BUG。现在我将给出这个BUG的临时修复方法。
错误描述:
当重复执行<?php while($this->next()): ?>
时,堆栈会额外增加一条数据。
源代码:
Var/Typecho/Widget.php
解决方法
第一种(保守治疗):
删除重复的分类,重新添加一次。
第二种(手术治疗):
修改上面的25行代码,将代码中的“&”换成“@”,如下所示
/**
\* 返回堆栈每一行的值(Fixed)
\*
\* @return array
*/
public function next()
{
if ($this->stack) {
$this->row =@$this->stack[key($this->stack)]; 这一行
next($this->stack);
$this->sequence ++;
}
if (!$this->row) {
reset($this->stack);
if ($this->stack) {
$this->row = $this->stack[key($this->stack)];
}
$this->sequence = 0;
return false;
}
return $this->row;
}
来源[http://www.microhu.com/typecho-main-code-bug.html]
文章目录
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。