修正wp禁用admin后评论头像变为默认
WordPress 3.7中更新了密码强度指示条,可见在WordPress开始重视安全问题了,看看我的密码强度竟然是弱,立刻换成更强的。然后将所有的订阅者账号删掉,新建一个管理者账号,用新建的账号登陆,将admin账号删除并将所有博文都转移到新账号下。此时以为都完成了,其实不然。
发现问题
当我把这些都做完后发现自己的评论头像(Avatar)都变成默认的头像了。
- 首先检查我的email地址,发现没有问题。
- 记得之前有修改过Comments Avatar Lazyload,回退到稳定版本,问题依然没有解决。
- 查看评论代码及
get_avatar
函数的实现。
终于发现问题的原因了。先看get_avatar
通过第一个参数$id_or_email
获取具体email的逻辑,该参数接受$user_id
,$email
或者$comment
对象。
- 如果是number,那么就是$user_id,获取
user
对象,再获取user_email
. - 如果是object,那么就是$comment.
- 如果存在
$comment->user_id
, 那么使用该user的user_email
. - 如果存在
$comennt->comment_author_email
,那么使用该eamil.
- 如果存在
- 那么就是string,自然使用该字符串作为email.
评论头像显示不正常就是因为给get_avatar
传入了comment对象,并且$comment->user_id
为已删除的user_id
,找不到这个user,就使用了默认头像。
现在已经将这个bug提交到了wordpress,不知道时候才能修复这个问题。
修复问题
等待wordpress修复这个bug不知道要到什么时候了,自己先修复吧,这里不修改WordPress的源代码,修改下数据库就可以解决了。修改comments表中user_id从1变成0.
UPDATE wp_comments SET user_id=0 WHERE user_id=1;
» 转载请注明来源:www.litefeel.com » 《修正wp禁用admin后评论头像变为默认》
» 本文链接地址:https://www.litefeel.com/wp-remove-user-to-default-avatar/
» 订阅本站:www.litefeel.com/feed/
» Host on Linode VPS
» 本文链接地址:https://www.litefeel.com/wp-remove-user-to-default-avatar/
» 订阅本站:www.litefeel.com/feed/
» Host on Linode VPS