欢迎来到好人卡资源网,专注网络技术资源收集,我们不仅是网络资源的搬运工,也生产原创资源。寻找资源请留言

为WordPress评论设置默认头像

网站源码 sky995 8个月前 (04-09) 165次浏览 0个评论

众所周知wp的评论头像基于Gravatar,而没有注册此服务的邮箱就没有自定义的头像,虽然Wordpress的设置可以选择一个默认的头像,但都是固定的、或者随机生成的,没有让我们选择自己自定义头像的余地。

因此我们可以通过使用WP钩子来替换头像URL中的参数,即可达到设置自定义头像的目的。

首先,你要将默认头像放到一个网络空间,即可以使用URL访问的位置,例如我使用这个头像:

https://static.orangii.cn/avatar/default.jpg

第二步,我们关键的替换代码如下:

// 默认头像地址
$default_avatar = 'https://static.orangii.cn/avatar/default.jpg';
// 替换掉原本的 d 参数
$url = preg_replace('/(\?|&)(d=[a-zA-Z]+)(&?)/', '\\1', $url);
//添加上我们自己的默认头像参数
$url .= "&d=" . urlencode($default_avatar);

现在可以将它写成一个函数,添加到主题的 functions.php 中,然后注册WP钩子,来达到设置默认头像的目的。示例如下:

function o_default_avatar($url){
$default_avatar = 'https://static.orangii.cn/avatar/default.jpg';
$url = preg_replace('/(\?|&)(d=[a-zA-Z]+)(&?)/', '\\1', $url);
$url .= "&d=" . urlencode($default_avatar);
return $url;
}
add_filter('get_avatar_url', 'o_default_avatar');

顺便,如果你希望再使用CDN加速Gravatar头像的话,可以直接一步到位(如果效果不理想记得更换cdn):

function o_gravatar_cdn($url){
$cdn = "gravatar.loli.net/avatar/";
$default_avatar = 'https://static.orangii.cn/avatar/default.jpg';
$url = preg_replace("/\/\/(.*?).gravatar.com\/avatar\//", "//" . $cdn, $url);
$url = preg_replace('/(\?|&)(d=[a-zA-Z]+)(&?)/', '\\1', $url);
$url .= "&d=" . urlencode($default_avatar);
return $url;
}
add_filter('get_avatar_url', 'o_gravatar_cdn');

效果的话,可以查看留言板,也可以看友情链接

如果你使用的主题后期会更新,那么你在functions.php里面的修改将会被覆盖失效,可以使用子主题的方式避免这种情况。

好人卡资源网 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:为WordPress评论设置默认头像
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址