kizumi_header_banner_img

Hello! 欢迎光临Aurora.歆の小破站!

加载中

文章导读

(搬运自己的文章)Typecho主题Robes出现的一些问题的解决方案


avatar
Aurora.歆Official 2026年7月22日 84

原文链接:前往Aurora.歆の个人主页

主题作者地址:robes.xin

 

适用于通过宝塔面板docker商店部署的typecho,安装robes主题出现的明显问题

先来看第一个问题

1.留言板Database Query Error

我们正常部署好主题,基本信息填好,在独立页面添加一个名为留言的页面,打开后会出现Database Query Error的字样

2026-07-21T11:40:44.png

接下来我们去到网站根目录,打开/data/usr/theme/robes/目录,找到config.inc.php这个文件

在第一行添加如下代码:

define(‘__TYPECHO_DEBUG__’, true);

这个代码用于开启调试模式(Debug Mode)

再次打开留言板页面,发现页面中输出了以下信息:

SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘zbfy2zrbfgwpwswt.typecho_comments.mail’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
Typecho\Db\Adapter\SQLException: SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘zbfy2zrbfgwpwswt.typecho_comments.mail’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by in /app/var/Typecho/Db/Adapter/Pdo.php:111
Stack trace:
#0 /app/var/Typecho/Db.php(391): Typecho\Db\Adapter\Pdo->query(‘SELECT `author`…’, Object(PDO), 1, ‘SELECT’, ‘typecho_comment…’)
#1 /app/var/Typecho/Db.php(424): Typecho\Db->query(Object(Typecho\Db\Query))
#2 /app/usr/themes/robes/guestbook.php(37): Typecho\Db->fetchAll(Object(Typecho\Db\Query))
#3 /app/var/Widget/Archive.php(1418): require_once(‘/app/usr/themes…’)
#4 /app/var/Typecho/Router.php(99): Widget\Archive->render()
#5 /app/index.php(23): Typecho\Router::dispatch()
#6 {main}

简单解读一下报错信息

核心错误是:Expression #2 of SELECT list is not in GROUP BY clause
查询使用了 GROUP BY,但 SELECT 列表中包含一个非聚合列 typecho_comments.mail,而这个列没有出现在 GROUP BY 子句中。

还有一个就是MySQL 规则:当 sql_mode 包含 ONLY_FULL_GROUP_BY 时,要求 SELECT 中的每一列要么是 GROUP BY 的一部分,要么被聚合函数(如 MAX()、MIN()、SUM())包裹,否则 MySQL 会拒绝执行并报错。

#2 /app/usr/themes/robes/guestbook.php(37): Typecho\Db->fetchAll(Object(Typecho\Db\Query))

仔细看这行会发现,问题在guestbook.php的第37行

这行执行了一个数据库查询,这个查询包含 GROUP BY 且选中了 mail 字段,但没有在 GROUP BY 中列出。

解决方法也很简单

打开data/usr/theme/robes/guestbook.php这个文件,找到37-46行

将内容替换为如下代码

 $topCommentersQuery = $db->select(
‘author’,
array(‘ANY_VALUE(mail)’ => ‘mail’), // 这里将 mail 用 ANY_VALUE 包裹
array(‘COUNT(coid)’ => ‘cnt’)
)
->from($prefix . ‘comments’)
->where(‘status = ?’, ‘approved’)
->group(‘author’) // 分组保持不变
->order(‘cnt’, \Typecho\Db::SORT_DESC)
->limit(5);

(由于我在这里加了第二个问题的代码,所以这里显示是42行开始)

保存文件,刷新留言板即可正常使用

2.评论发送后无法显示

留言板修好了,发条留言吧!

诶?!怎么发布成功后不显示啊???

不是哥们,文章发评论也不显示啊????

 

这个问题我在检查comments.php这个文件没发现啥大的问题(因为熟练度不够,这个问题丢给Ai了)

某Ai给了我一串代码

 <?php
if (isset($_GET[‘error’])) {
echo ‘<div style=”color:red;”>错误代码:’ . htmlspecialchars($_GET[‘error’]) . ‘</div>’;
}
?>

这行代码添加在路径为/data/usr/theme/robes/里的comments.php

将这行代码添加在最上方,保存刷新页面即可

留言板和文章评论区同样适用

 

主题还有一个问题就是吞评论,这个问题据说作者自己都没解决。。。

 

感谢您的支持
微信赞赏

微信扫一扫

支付宝赞赏

支付宝扫一扫



评论(0)

查看评论列表

暂无评论


发表评论

Aurora.歆の小破站

关于站长喵

avatar

Aurora.歆Official

网易音乐人、歌手、制作人

23
文章
14
评论
6
用户

我是广告喵

文章归档喵