Discuz模板|Discuz插件|Discuz教程|Discuz素材免费下载

 找回密码
 立即注册

QQ登录

只需一步,快速开始

广告
温馨提示:本站所有DZ相关模板、插件、教程(包括DZ应用中心已下架插件、模板)所有用户可全部免费下载,无任何收费模式(不包括VIP版块非DZ资源,VIP版块需购买会员组方可下载),如本站没有您需要的插件或模板,请自行前往淘宝互站网送吗网等第三方站点搜索相关插件或模板进行低价格购买下载本站非常不建议用户浪费金钱前往DZ应用中心购买。

Gravatar 头像被墙及解决方案

[复制链接]
tuzi 发表于 2015-8-8 23:01:10 | 显示全部楼层 |阅读模式
温馨提醒:禁止内容附带广告图片、二维码图片,否则将在不通知情况下永久禁言账号!
欢迎加入兔源码站长交流群,您的加入是我们前行的动力!

DZ站长建站交流群:493651246

[ 温馨提示:点击上方群文字,可快速加入QQ群 ]


貌似从前天开始,Gravatar 头像服务就被彻底屏蔽了,国内没办法正常访问,就连之前使用的缓存头像到本地的方法,在国内主机中也失效了。至于解决办法,也就 @bigfa 同学发文章了。下面就是来自 某同学的文章内容,原文出自:https://www.tuyuanma.com8 F  \( g. w$ z$ d  L5 L, T% i

今天在几个朋友的帮助下发现Gravatar 应该是彻底被墙了,根本无法访问了,可能是最近大会或者什么其他原因吧,还有人因为什么被抓起来了,太多东西也不好评价。我Gril Friend Wall 果然是天下无敌。

年纪大了折腾的精力就不如从前了,只想用最简单的方法解决问题,我采用了第一种方法,直接调用官方的数据,理论上应该是最稳定的了(没被墙的前提下)。* }2 b5 e1 Z" ^5 E3 m

调用ssl 头像链接

https还是没被墙的,而且速度还不错,直接调用这个最简单了。

如果你的网站启用了ssl则不需要了,否则functions.php 加入如下代码

  1. function get_ssl_avatar($avatar) {
    , ^: P1 \+ m6 Z4 T/ X( ]8 G) Z; a
  2.    $avatar = preg_replace('/.*\/avatar\/(.*)\?s=([\d]+)&.*/','<img src="https://secure.gravatar.com/avatar/$1?s=$2" class="avatar avatar-$2" height="$2" width="$2">',$avatar);: U5 Q  ?- h; \9 T& ]
  3.    return $avatar;9 _! ~6 D9 }+ P1 a; z, b7 |
  4. }
    : |- ^+ w6 b9 M- I. I5 s
  5. add_filter('get_avatar', 'get_ssl_avatar');
复制代码

优点:简单稳定

缺点: 当头像特别大时速度可能略慢

本地缓存

下面的代码加到functions.php中

  1. function my_avatar($avatar) {' E# e+ f  C# t/ u8 v, z
  2.   $tmp = strpos($avatar, 'http');
    . ?- D9 Y& z3 A
  3.   $g = substr($avatar, $tmp, strpos($avatar, "'", $tmp) - $tmp);
    6 |4 d1 M2 `) u0 s' y. U4 Y
  4.   $tmp = strpos($g, 'avatar/') + 7;% S: H! o! H- o/ f2 L
  5.   $f = substr($g, $tmp, strpos($g, "?", $tmp) - $tmp);
    - K. D# Q$ S' [) {
  6.   $w = get_bloginfo('wpurl');
    9 i4 i$ Y/ v- U3 b7 K8 ^# z
  7.   $e = ABSPATH .'avatar/'. $f .'.jpg';
    5 D0 p! O6 V$ M
  8.   $t = 1209600; //設定14天, 單位:秒( Y# o5 I. ~, B( j- r! j
  9.   if ( !is_file($e) || (time() - filemtime($e)) > $t ) { //當頭像不存在或文件超過14天才更新
    $ c+ B5 y+ R, K9 k
  10.     copy(htmlspecialchars_decode($g), $e);4 c! {! G' F/ q+ R! }0 O, J2 l; ~
  11.   } else  $avatar = strtr($avatar, array($g => $w.'/avatar/'.$f.'.jpg'));
    1 J: G, j5 k" }% {. o8 Q, u. Z+ y& }
  12.   if (filesize($e) < 500) copy($w.'/avatar/default.jpg', $e);$ @  U: N. [! Q; r
  13.   return $avatar;
    ) y) Z# P* r1 [( U
  14. }
    " s. g: x) k1 A; O( G3 N
  15. add_filter('get_avatar', 'my_avatar');
复制代码

在WordPress安装根目(即跟wp-content等文件夹同一目录下)下新建一个名为 avatar 的文件夹 ,并给予写权限。放入一张同尺寸的头像图片命名为default.jpg。

优点:和主机速度挂钩,如果你的服务器特别快则头像加载也特别快

缺点:只能缓存一个尺寸的头像,国内主机无法使用

via:willin

多说缓存

注:多说部分头像会被回源,导致无法显示,所以也不推荐这个方案

下面的代码加到functions.php中

  1. function duoshuo_avatar($avatar) {/ x' ]3 I9 g7 h7 v
  2.     $avatar = str_replace(array("www.gravatar.com","0.gravatar.com","1.gravatar.com","2.gravatar.com"),"gravatar.duoshuo.com",$avatar);% q: c7 _+ x, q" a8 E+ X; k
  3.     return $avatar;
    # b$ h* D  p: R/ l
  4. }
    9 z6 E, r9 `9 Q* l) k$ K
  5. add_filter( 'get_avatar', 'duoshuo_avatar', 10, 3 );
复制代码

优点:

缺点:我最烦多说了

还有七牛缓存之类的,网上有很多,大家可以随便搜搜,个人最推荐的是第一种方法


# _; S% l$ @# o/ O
; S4 {( y  J; P; ~0 O; F

版权声明
1、转摘或引用本站内容资源须注明原网址,并标明本站网址(兔源码www.tuyuanma.com);
2、对于转摘或引用本站内容资源而引起的民事纠纷、行政处罚或其他损失,本站不承担责任;
3、对于不遵守本声明或其他违法、恶意使用本站内容者,本站保留其追究法律责任的权利。




自动排版 | 高级模式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广告

兔源码网 (公网安备36112102000036号 赣ICP备17001544号)

兔源码 QQ交流群:493651246  GMT+8, 2020-1-26 17:48
←站长统计工具 查看密码:tuyuanma

兔源码DZ模板下载 站长邮箱:tuyuanma@qq.com 站长QQ:3197813386 网站地图

© 2001-2013 本站内容皆来自互联网及用户分享,如需删除请提供软著或商标证书。

     
快速回复 返回顶部 返回列表