> php教程 > php手册 > 解决调用远程Gravatar头像图片不显示问题

解决调用远程Gravatar头像图片不显示问题

WBOY
풀어 주다: 2016-05-26 08:20:46
원래의
1510명이 탐색했습니다.

Gravatar头像是现在博客通用的一个调用方法了,很多朋友的个人博客都使用了Gravatar头像了,但最近有很多站长发现Gravatar头像打开缓慢了,那么我们要如何解决Gravatar图片打不开或者打开慢的问题呢?下面来看看吧。

第一、如果我们还需要使用Gravatar头像

<?php
function get_ssl_avatar($avatar) {
    $avatar = preg_replace(&#39;/.*\/avatar\/(.*)\?s=([\d]+)&.*/&#39;,&#39;<img  src="https://secure.gravatar.com/avatar/$1?s=$2" class="avatar avatar-$2" height="$2"    style="max-width:90%" alt="解决调用远程Gravatar头像图片不显示问题 " >&#39;,$avatar);
    return $avatar;
}
add_filter(&#39;get_avatar&#39;, &#39;get_ssl_avatar&#39;);
로그인 후 복사

在当前WORDPRESS主题中的FUNCTIONS.PHP页面中加入上面的代码,因为HTTP直接访问不了,这里调整为HTTPS的路径地址。

第二、使用本地头像

function my_avatar($avatar) {
    $tmp = strpos($avatar, &#39;http&#39;);
    $g = substr($avatar, $tmp, strpos($avatar, "&#39;", $tmp) - $tmp);
    $tmp = strpos($g, &#39;avatar/&#39;) + 7;
    $f = substr($g, $tmp, strpos($g, "?", $tmp) - $tmp);
    $w = get_bloginfo(&#39;wpurl&#39;);
    $e = ABSPATH .&#39;avatar/&#39;. $f .&#39;.jpg&#39;;
    $t = 1209600;
    if ( !is_file($e) || (time() - filemtime($e)) > $t ) {
        copy(htmlspecialchars_decode($g), $e);
    } else{
        $avatar = strtr($avatar, array($g => $w.&#39;/avatar/&#39;.$f.&#39;.jpg&#39;));
    }
    if (filesize($e) < 500)
    {
        copy($w.&#39;/avatar/default.jpg&#39;, $e);
    }
    return $avatar;
}
add_filter(&#39;get_avatar&#39;, &#39;my_avatar&#39;);
로그인 후 복사

同样的,在FUNCTIONS.PHP文件中,加入上面的代码,把头像缓存本地,同样的使用avatar文件夹作为根目录,可以先放入一个default.jpg作为默认不存在的头像展示图片。

第三、使用第三方评论插件

使用第三方评论插件可以展示头像的,目前不存在调用问题,之前老左也写过一篇"点评四款社会化评论系统",目前使用较多的还是多说和畅言,前者用户体验还可以,就是服务器宕机不稳定。后者基于搜狐提供的,界面一般,但服务器是比较稳定的。


本文地址:

转载随意,但请附上文章地址:-)

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿