WordPress修改评论区头像
WordPress修改评论区头像

WordPress修改评论区头像

问题描述

在WordPress中可以设置游客图像,但实际上头像会存在加载缓慢等问题。

原因为:自定义的头像会同步到Gravatar网站,该网站首次打开都可能存在问题。

解决方案

WordPress媒体库中,新增未知用户头像。

新增后,复制文件URL地址,将URL地址替换到下面的“头像URL链接”处。

// 替换 Gravatar 头像为本地头像(包含陌生人评论)
function custom_avatar($avatar, $id_or_email, $size, $default, $alt) {
    // 设置默认本地头像路径
    $local_default_avatar = '头像URL链接';
     // 判断是否为注册用户
     if (is_email($id_or_email)) {
        $user = get_user_by('email', $id_or_email); // 根据邮箱获取用户
    } elseif (is_numeric($id_or_email)) {
        $user = get_user_by('id', $id_or_email); // 根据用户 ID 获取用户
    } elseif (isset($id_or_email->user_id)) {
        $user = get_user_by('id', $id_or_email->user_id); // 评论对象中获取用户
    } else {
        $user = null; // 陌生人
    }

    // 如果是注册用户,返回原始头像(保持不变)
    if ($user && $user->ID) {
        return $avatar;
    }

    // 对于未注册用户(陌生人),返回本地默认头像
    return "<img src='{$local_default_avatar}' alt='{$alt}' width='{$size}' height='{$size}' class='avatar avatar-{$size} photo' />";
}
add_filter('get_avatar', 'custom_avatar', 10, 5);

将这段代码新增到functions.php中:

点击“更新文件”按钮,前台页面同步更新。

总结

该问题解决的是,在WordPress中用户留言的头像,通过校验留言用户是否为注册用户,如果不是注册用户,使用自定义的图片进行展示。

好处为不需要走Gravatar网站,通过网站自身的头像进行展示,不好的地方就是这里统一了非注册用户的头像,同时增加了维护成本。

还需要注意的一点是,网站前期通过插件“Simple Local Avatars”进行设置的账号头像,所以,如果你想要让自己的注册账号使用头像,也可以考虑使用“Simple Local Avatars”插件进行实现。

上述代码只解决未注册用户的头像显示问题。

如果您认为这篇文章给您带来了帮助,您可以在此通过支付宝或者微信打赏网站开放者。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注