WordPress默认头像来源于Garvatar,当用户没有配置自己的头像时,会加载一张默认的图片作为头像,但是因为墙的原因加速速度极慢甚至加载失败,不仅影响页面美观,也会拖累页面的加载。如果简单的直接去除头像功能,可以在设置-讨论下取消勾选【显示头像】,但是如果想要正常使用头像功能,就需要通过插件或者代码的方式解决。
一、插件
1、WP-China-Yes:国内大佬开发,提供将WordPress切换至本土生态,在头像功能中提供对 Garvatar 加速支持。但是因为部分原因在WordPress官方插件市场中下架,需要手动下载插件压缩包安装。
2、WP User Avatar:官方插件市场中安装和推荐数量较高的一个头像插件,允许注册用户上传和选择自定义图片作为头像。
二、代码
在外观-主题编辑器中,修改当前使用主题的模板函数function.php,在文件内添加如下代码
/**
* 替换WordPress的Gravatar头像源
* https://www.ilxtx.com/replace-gravatar-server.html
*/
if ( ! function_exists( 'dr_filter_get_avatar' ) ) {
function dr_filter_get_avatar( $avatar ) {
// 新Gravatar头像源,可自行修改
$new_gravatar_sever = 'cravatar.cn';
$sources = array(
'www.gravatar.com/avatar/',
'0.gravatar.com/avatar/',
'1.gravatar.com/avatar/',
'2.gravatar.com/avatar/',
'secure.gravatar.com/avatar/',
'cn.gravatar.com/avatar/'
);
return str_replace( $sources, $new_gravatar_sever.'/avatar/', $avatar );
}
add_filter( 'get_avatar', 'dr_filter_get_avatar' );
}
另外,上面代码里的头像源cravatar.cn使用的是国内大佬开发的Cravatar头像。Cravatar完美兼容Gravatar头像的API接口,如果未在Cravatar设置头像,则会先尝试调用Gravatar上的头像数据,其后是QQ头像(仅限于使用 QQ 数字邮箱的用户,具体字段位于WordPress数据库wp_users表,user_email字段),最后会返回一组默认头像。这一切是自动进行的,用户对此无感知。
通过代码+插件的方式,即可实现上传自定义图片作为头像的功能,同时如果没有上传头像,那么会使用一张默认图片作为头像,扩展了WordPress头像功能,也避免了国内访问Gravatar头像可能出现的问题。
Posted In: 全部
Tagged In: WordPress