启用Yusi2.1后gavatar头像不显示解决办法

Author: 陌小雨Date: 2015-01-28View: 212

昨天看到同盟源分享的Yusi1.0修改升级版顿时觉得眼前一亮,立马换上试试,可发现一个很严重的问题,安装主题后Gavatar头像一直在那转啊转啊转,看着很是闹心,于是陌小雨开始动刀子啦!前不久,陌小雨发布过一片安装知更鸟主题后发布的一篇文章:解决知更鸟主题评论头像不显示,今天的手术需要改文章中的代码:
需要修改的四个文件,分别是functions.php、comment.php、widgets/wid-comment.php、ajax/comment.php共四个文件
修改办法:

1、functions.php修改

找到如下代码删除

//评论头像缓存
function deel_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('wpurl');
  $e = ABSPATH .'avatar/'. $f .'.png';
  $t = dopt('d_avatarDate')*24*60*60; 
  if ( !is_file($e) || (time() - filemtime($e)) > $t ) 
	copy(htmlspecialchars_decode($g), $e);
  else  
	$avatar = strtr($avatar, array($g => $w.'/avatar/'.$f.'.png'));
  if ( filesize($e) < 500 ) 
	copy(get_bloginfo('template_directory').'/img/default.png', $e);
  return $avatar;
}

替换为如下代码:

//解决Yusi2.1主题gravatar头像被墙by陌小雨
function get_ssl_avatar($avatar) {
   $avatar = preg_replace('/.*\/avatar\/(.*)\s=([\d]+)&.*/','<img src="https://secure.gravatar.com/avatar/$1s=$2" class="avatar avatar-$2" height="$2" width="$2">',$avatar);
   return $avatar;
}
add_filter('get_avatar', 'get_ssl_avatar');

然后搜索
[v_qing]deel_avatar[/v_qing]
全部替换为
[v_pink]get_ssl_avatar[/v_pink]

2、comment.php、widgets/wid-comment.php、ajax/comment.php文件修改

同样如上搜索全部替换即可。

陌小雨写完文章才发现还有一个更简单的方法:
直接将上面代码

//解决Yusi2.1主题gravatar头像被墙by陌小雨
function get_ssl_avatar($avatar) {
   $avatar = preg_replace('/.*\/avatar\/(.*)\s=([\d]+)&.*/','<img src="https://secure.gravatar.com/avatar/$1s=$2" class="avatar avatar-$2" height="$2" width="$2">',$avatar);
   return $avatar;
}
add_filter('get_avatar', 'get_ssl_avatar');

中的两个get_ssl_avatar替换为deel_avatar好像更便捷一点, 😥 哎,不管了,反正已经修改完了。