最新公告
  • 欢迎您光临知事网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • Gravater头像被墙(不显示)的解决方案

    很久没看博客了,今天打开网站发现头像都不能显示了,在网上搜索看了一下,原来是Gravater头像被墙了,更上次谷歌服务器被墙导致WordPress打开很慢的原因一样的。头像不显示,网站再好也毁三观,赶紧找到了解决办法:

    1、functions.php 加入如下代码:

    function quickly_gravatar($avatar) {  
    $avatar = str_replace('?s=', '.png?s=', $avatar);  
    $avatar = preg_replace("/([0-9])\.gravatar/i", "en.gravatar", $avatar);  
    return $avatar;  
    add_filter('get_avatar', 'quickly_gravatar');

    2、调用ssl 头像链接

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

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

    function get_ssl_avatar($avatar) {
       $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);
       return $avatar;
    }
    add_filter('get_avatar', 'get_ssl_avatar');

    3、本地缓存

    下面的代码加到functions.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('wpurl');
      $e = ABSPATH .'avatar/'. $f .'.jpg';
      $t = 1209600; //設定14天, 單位:秒
      if ( !is_file($e) || (time() - filemtime($e)) > $t ) { //當頭像不存在或文件超過14天才更新
        copy(htmlspecialchars_decode($g), $e);
      } 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');

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

    找互联网优质资源,上知事网!
    知事网 » Gravater头像被墙(不显示)的解决方案

    4 评论

    1. 膜拜啊,大神

    2. 膜拜啊,大神

    发表评论

    • 595会员总数(位)
    • 425资源总数(个)
    • 2本周发布(个)
    • 1 今日发布(个)
    • 3426稳定运行(天)

    提供最优质的资源集合

    Mac软件 Dedecms源码
    升级SVIP尊享更多特权立即升级