文章页评论区要等两秒多才稳定下来,开发者工具里四十个头像请求全指向 secure.gravatar.com,每个都在三百毫秒以上。第一次遇到会往复杂处想,其实漏掉的多是个小前提。
add_filter('get_avatar_url', function($url, $id){
$hash = md5(strtolower(trim(get_comment_author_email($id))));
return 'https://cdn.example.com/avatar/' . $hash . '?s=48';
}, 10, 2);
每个头像都是一次独立的外部请求,评论条数一多就串成瀑布。默认尺寸和 d 参数没设,未注册邮箱还会再等一次默认图。国内网络到 Gravatar 的链路本身就不稳定。这一点先确认清楚,后面就不用反复试。
「Gravatar 头像慢」这个问题文档写得含糊,实际行为以当前版本为准,别照旧版本的结论套。把这次用到的命令存进笔记,比记住结论有用,换个环境还能照着走。
具体做法是,把头像尺寸压到实际显示大小,别拿二百像素的图缩成四十像素显示;给 get_avatar_url 加过滤,把地址换成可达的镜像或本地缓存目录;评论列表先输出占位色块,头像异步补上,避免整块内容被拖住。
改完照着核一遍,评论区首屏不再等待外网头像,占位色块被头像平滑替换。
