在 WordPress 中,Gravatar 是一种全球通用的头像服务,用户可以使用自己的 Gravatar 图像来显示在评论区域等位置。
但国内访问不了gravatar.com,所以默认的Wordpress评论区头像经常裂开、加载不出来。
(🎁 文末有福利)
3 个解决方案思路
1.方案 1(自己搭建):自建gravatar代理:使用国外服务器,对secure.gravatar.com进行反向代理,然后把gravatar的服务器改成反代的域名即可。
2.方案 2(用别人的):假如Gravatar将来提供了国内的镜像(或者有热心网友自行搭建),也可以将地址修改为国内服务器,以提高速度,搜索关键词:Gravatar镜像源
。
3.方案 3(免插件纯代码):编辑主题functions.php文件
在此我只展示方案 1 和方案 3
方案 1 具体操作
流程
新建域名——编辑反向代理——申请 SSL证书——安装插件——设置gravatar服务器
操作步骤:
1. 新建域名
2. 编辑反向代理
3. 编辑配置文件
把以下代码加到配置文件中,就可以对https的域名进行反代了
proxy_ssl_server_name on;
4. 安装插件
插件名字:gravatar-fixed
插件大小:2KB
插件简介:该插件用于修正Gravatar服务器无法正常访问的情况,并且可以自定义Gravatar服务器地址
5. 设置gravatar服务器
*Gravatar SSL 服务器仅适用于 WordPress 开启SSL访问时才起作用。
🎁 福利
如果你不想自建,可以尝试Gravatar的公共镜像:
Gravatar头像公共镜像
Cravatar:https://cravatar.cn/avatar/
V2EX:https://cdn.v2ex.com/gravatar/
极客族:https://sdn.geekzu.org/avatar/
loli:https://gravatar.loli.net/avatar/
方案 3 具体操作
如果你不想安装插件/ 有洁癖,秉承着“”能用代码就不插件“的话
比较简单,只需要将以下代码插入Wordpres主题的 functions.php
中即可
💡温馨提示:建议只在子主题的functions.php文件中编辑,因为一旦主题升级,有可能会丢失functions.php的自定义代码。
function replace_gravatar($avatar) {
$avatar = str_replace(array("//gravatar.com/", "//secure.gravatar.com/", "//www.gravatar.com/", "//0.gravatar.com/", "//1.gravatar.com/", "//2.gravatar.com/", "//cn.gravatar.com/"), "//sdn.geekzu.org/", $avatar);
return $avatar;}
add_filter( 'get_avatar', 'replace_gravatar' );
将上面的代码粘贴在这里就可以了
代码解释:这段代码中的功能是通过 replace_gravatar 函数将 Gravatar 的 URL 替换为指定的 URL。具体来说,它使用 str_replace 函数将 Gravatar 的各个域名(包括 “//gravatar.com/”、”//secure.gravatar.com/” 等)替换为 “//sdn.geekzu.org/”,然后将替换后的 URL 返回。
最后,通过 add_filter( ‘get_avatar’, ‘replace_gravatar’ ) 将 replace_gravatar 函数应用到 WordPress 的 get_avatar 过滤器上,以实现替换 Gravatar 头像 URL 的功能。
如果你要将 Gravatar 的 URL 替换为你自建的地址,只需要将原来的替换目标 “//sdn.geekzu.org/” 替换为您想要使用的地址 “//输入你自建的地址”,这样就可以将 Gravatar 的 URL 替换为您自建的地址了。然后将这段代码添加到您的 WordPress 主题的 functions.php 文件中即可生效。
完结!撒花🌸👋
学习了,感谢分享
🙂
哪种办法都有抽风的时候,我是用的CF搭建的
点赞,最近正想解决这个问题