豆包这家伙,有时候改代码让我很难受,有时候又让我很佩服。
最近这两个月使用emlog的时候,发现侧栏居然出现了管理员的评论,而这个过滤功能早在去年就通过威兄的帮助已经实现了。于是就想着肯定是系统的功能出现了变动,使得主题的相关代码也得更新逻辑。

上次威兄改好可用的代码是:
// 获取所有管理员邮箱
$users = $CACHE->readCache('user');
$admin_emails = [];
if ($users && is_array($users)) {
foreach ($users as $user) {
if (isset($user['role']) && $user['role'] === 'admin') {
$admin_emails[] = strtolower(trim($user['mail']));
}
}
}
我提交给了豆包,说明了是emlog的主题代码,然后豆包不到一分钟就给我了完美方案,而且说的很有道理。
旧版:通过管理员邮箱过滤评论
新版:评论表里的 mail 可能为空 / 被修改,正确方式是用 UID 判断是否为管理员
并给出了完美代码:
// ===================== 核心修复:获取所有管理员 UID =====================
$users = $CACHE->readCache('user');
$admin_uids = [];
if ($users && is_array($users)) {
foreach ($users as $user) {
// 只要是管理员,就记录 UID
if (isset($user['role']) && $user['role'] === 'admin') {
$admin_uids[] = (int)$user['uid'];
}
}
}
然后将之前跳过管理员评论的代码
// 跳过管理员评论
if (in_array(strtolower(trim($row['mail'])), $admin_emails)) {
continue;
}
替换成
// ===================== 修复:用 UID 过滤管理员评论 =====================
if (in_array($comment_uid, $admin_uids)) {
continue;
}
保存上传,问题立刻解决,666。


emlog侧栏最新评论修复:邮箱换ID:等您坐沙发呢!