阅读:1795回复:0
wordpress教程:Gravatar头像被墙及解决方案
[tr][td]今天在几个朋友的帮助下发现Gravatar 应该是彻底被墙了,根本无法访问了,可能是最近大会或者什么其他原因吧,还有人因为什么被抓起来了,太多东西也不好评价。我Gril Friend Wall 果然是天下无敌。
年纪大了折腾的精力就不如从前了,只想用最简单的方法解决问题,我采用了第一种方法,直接调用官方的数据,理论上应该是最稳定的了(没被墙的前提下)。 调用ssl 头像链接 https还是没被墙的,而且速度还不错,直接调用这个最简单了。 如果你的网站启用了ssl则不需要了,否则functions.php 加入如下代码 [*]function get_ssl_avatar($avatar) { [*] $avatar = preg_replace('/.*/avatar/(.*)?s=([d]+)&.*/','',$avatar); [*] return $avatar; [*]} [*]add_filter('get_avatar', 'get_ssl_avatar'); 优点:简单稳定 缺点: 当头像特别大时速度可能略慢 本地缓存 下面的代码加到functions.php中 <div class="wp-geshi-highlight-wrap5"><div class="wp-geshi-highlight-wrap4"><div class="wp-geshi-highlight-wrap3"><div class="wp-geshi-highlight-wrap2"><div class="wp-geshi-highlight-wrap"><div class="wp-geshi-highlight"><div class="php"><ol><li class="li1">function my_avatar($avatar) {<li class="li1"> $tmp = strpos($avatar, 'http');<li class="li1"> $g = substr($avatar, $tmp, strpos($avatar, "'", $tmp) - $tmp);<li class="li1"> $tmp = strpos($g, 'avatar/') + 7;<li class="li1"> $f = substr($g, $tmp, strpos($g, "?", $tmp) - $tmp);<li class="li1"> $w = get_bloginfo('wpurl');<li class="li1"> $e = ABSPATH .'avatar/'. $f .'.jpg';<li class="li1"> $t = 1209600; //設定14天, 單位:秒<li class="li1"> if ( !is_file($e) || (time() - filemtime($e)) > $t ) { //當頭像不存在或文件超過14天才更新<li class="li1"> copy(htmlspecialchars_decode($g), $e);<li class="li1"> } else $avatar = strtr($avatar, array($g => $w.'/avatar/'.$f.'.jpg'));<li class="li1"> if (filesize($e) <span class="sy0"> |
|