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

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

WBOY
WBOYOriginal
2016-05-26 08:20:461491browse

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作为默认不存在的头像展示图片。

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

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


本文地址:

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

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn