ホームページ  >  記事  >  php教程  >  解决调用远程Gravatar头像图片不显示问题

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

WBOY
WBOYオリジナル
2016-05-26 08:20:461491ブラウズ

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

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

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


本文地址:

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。