虽然TWCMS伪静态别名模式不推荐使用,但是有特殊需求的网站,还是会启用,如果在后台编辑文章时,修改了文章所属的分类,那么你就要解决此Bug,否则前台对应页面报错。 具体修改方法:
1、打开\admin\control\article_control.class.php 文件。
2、找到423行-459行,用下面的代码替换掉
3、保存文件,登录网站后台 - 工具 - 清除缓存 - 完工。
// 编辑时,别名有三种情况需要处理 if($alias && $alias_old && $alias != $alias_old) { // 写入新别名 if(!$this->only_alias->set($alias, array('mid' => $mid, 'cid' => $cid, 'id' => $id))) { E(1, '写入全站唯一别名表出错'); } // 删除旧别名 if(!$this->only_alias->delete($alias_old)) { E(1, '删除别名表数据时出错'); } }elseif($alias && empty($alias_old)) { // 写入新别名 if(!$this->only_alias->set($alias, array('mid' => $mid, 'cid' => $cid, 'id' => $id))) { E(1, '写入全站唯一别名表出错'); } }elseif(empty($alias) && $alias_old) { // 删除旧别名 if(!$this->only_alias->delete($alias_old)) { E(1, '删除别名表数据时出错'); } } // 如果分类ID发生变化,更新分类内容数 if($cid != $data['cid']) { // 旧的分类内容数减1 $categorys_old = $this->category->read($data['cid']); $categorys_old['count'] = max(0, $categorys_old['count']-1); $this->category->update($categorys_old); // 新的分类内容数加1 $categorys['count']++; $this->category->update($categorys); //更新别名表新分类【开启伪静态别名模式时】 $dd['alias'] = $alias; $dd['cid'] = $cid; $this->only_alias->update($dd); $this->category->delete_cache(); }
4、登录网站后台 - 工具 - 清除缓存 - 完工。
当你编辑文章分类后,前台文章就不会出现错误了。
© 版权声明
本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。Mail To:718588255@qq.com
THE END