和豆包苦战数日,终究未能实现 simply 主题侧栏“最新评论”屏蔽博主留言的功能。



先测试代码逻辑是否可行


机缘巧合下,获得威兄的帮助,实现了我想要的功能。具体分为两步来实现,首先是找到主题原来的侧栏最新评论代码,在 module.php 文件中,(可以通过关键字搜索进行定位)具体是这段:

global $CACHE;
$com_cache = $CACHE->readCache('comment');


下面添加管理员邮箱地址:

$admin_mail = 'aaaa@123.com'; // 管理员邮箱


第二处要修改的地方是对所设置邮箱进行过滤,找到这段输出评论的代码:

$url = Url::comment($value['gid'], $value['page'], 'comment-' . $value['cid']);


前增加屏蔽管理员(前面设置的那个邮箱)邮箱的代码:

// 跳过管理员评论
if (isset($value['mail']) && strtolower(trim($value['mail'])) === strtolower($admin_mail)) {
  continue;
}


再将手动邮箱改成自动识别管理员邮箱


如果要实现自动屏蔽,需要将上面涉及管理员邮箱的代码换成获取管理员的代码,目前是通过id为1的用户来确定管理员的(可以做成主题开关变成半自动确认管理员),只有可以改成自动识别管理员才是完美方案。

将手动设置管理员邮箱的那行代码换成:

$users = $CACHE->readCache('user');
$admin_mail = isset($users[1]['mail']) ? $users[1]['mail'] : ''; // 自动获取管理员邮箱


就是直接过滤id为1的用户的邮箱,算是比较成熟的方案了,以后有机会再改进。

PS:wordpress 好像并不支持直接防止大量原生 php 代码在文章中,所以只好贴上点片段,完成笔记。