更换 WordPress 评论的头像地址
默认情况下,Wordpress 会显示 Gravatar 的头像。Gravatar 头像相当于你的 QQ 头像,代表的就是你在网络的个人形象,所以各种社交程序都不能免除头像的使用。
在国内,显示比较慢或者直接超时,在这种情况下,就得考虑是否要将头像修改成别的了。
但是修改整个系统的头像很麻烦,需要修改很多地方,且升级的时候还得一个个改回来。
有2种办法:一种是直接缓存图片到你自己的服务器,然后输出的时候替换成你服务器的地址。还有种就是利用多说的头像缓存,调用多说的地址来得到 Gravatar 头像。
第一种缓存 Gravatar 头像需要你的服务器能顺畅的连接到 Gravatar 的服务器。然后接下来需要在主题中的 functions.php 中添加以下内容:
<?php
function my_avatar($avatar) {
$tmp = strpos($avatar, 'http');
$g = substr($avatar, $tmp, strpos($avatar, "'", $tmp) - $tmp);
$tmp = strpos($g, 'avatar/') + 7;
$f = substr($g, $tmp, strpos($g, "?", $tmp) - $tmp);
$w = get_bloginfo('home');
$e = ABSPATH .'avatar/'. $f .'.jpg';
$t = 1209600; //設定14天, 單位:秒
if ( !is_file($e) || (time() - filemtime($e)) > $t ) { //當頭像不存在或文件超過14天才更新
$get_file = request_file($g);
$fp = @fopen($e, "w");
@fwrite($fp,$get_file);
fclose($fp);
} else {
$avatar = strtr($avatar, array($g => $w.'/avatar/'.$f.'.jpg'));
}
if (filesize($e) < 500)
copy($w.'/avatar/default.jpg', $e);
return $avatar;
}
add_filter('get_avatar', 'my_avatar');
function request_file($url){
$ch = curl_init() ;
curl_setopt($ch, CURLOPT_URL, $url) ;
ob_start();
curl_exec($ch);
$result = ob_get_contents() ;
ob_end_clean();
curl_close($ch) ;
return $result;
}
另一种方法就比较简单了,替换 Gravatar 的地址成多说的就好了。
function mytheme_get_avatar($avatar) {
$avatar = str_replace(array("www.gravatar.com", "0.gravatar.com", "1.gravatar.com", "2.gravatar.com"), "gravatar.duoshuo.com", $avatar);
return $avatar;
}
add_filter( 'get_avatar', 'mytheme_get_avatar', 10, 3 );
随便打开几个页面,看看头像是否快速的显示出来了呢~
【声明】本文 更换 WordPress 评论的头像地址 为柠之漠然原创文章,转载请注明出自
枫之落叶
并保留本文有效链接:https://blog.shiniv.com/2014/07/change-wordpress-gravatar-url/ , 转载请保留本声明!
随便打开几个页面,看看头像是否快速的显示出来了呢~