关于Willin的Gravatar缓存的一点小问题

前段时间Gravatar抽风,网站一直处于和Gravatar一样的半抽风状态。大多数时候读者的头像都是无法加载的,囧。于是我给主题添加了Willin Kan大牛的Gravatar缓存。

按照Willin的方法,首先在WP根目录创建avatar文件夹,设定权限755,然后在functions.php里面添加下面一串代码,并且将主题的get_avatar()函数替换成my_avatar()。

在functions.php里面添加代码如下:

/* Mini Gavatar Cache by Willin Kan. */

function my_avatar( $email, $size = '42', $default = '', $alt = '' ) {

$alt = esc_attr( $alt );

$f = md5( strtolower( $email ) );

$w = get_bloginfo('wpurl'); // 如果想放在 wp-content 路徑之下, 改為 $w = WP_CONTENT_URL;

$a = $w. '/avatar/'. $f. '.jpg';

$e = ABSPATH. 'avatar/'. $f. '.jpg'; // 如果想放在 wp-content 路徑之下, 改為 $e = WP_CONTENT_DIR. '/avatar/'. $f. '.jpg';

$t = 1209600; //設定14天, 單位:秒

if ( empty($default) ) $default = $w. '/avatar/default.jpg';

if ( !is_file($e) || (time() - filemtime($e)) > $t ){ //當頭像不存在或文件超過14天才更新

$r = get_option('avatar_rating');

//$g = sprintf( "http://%d.gravatar.com", ( hexdec( $f{0} ) % 2 ) ). '/avatar/'. $f. '?s='. $size. '&d='. $default. '&r='. $r; // wp 3.0 的服務器

$g = 'http://www.gravatar.com/avatar/'. $f. '?s='. $size. '&d='. $default. '&r='. $r; // 舊服務器 (哪個快就開哪個)

copy($g, $e); $a = esc_attr($g); //新頭像 copy 時, 取 gravatar 顯示

}

if (filesize($e) < 500) copy($default, $e);

echo "<img title='{$alt}' alt='{$alt}' src='{$a}' class='avatar avatar-{$size} photo' height='{$size}' width='{$size}' />";

}

// -- END ----------------------------------------

可是在这里出现了非常纠结的问题。zSnos2.5边栏获取评论Avatar的时候,干脆就木有头像显示了。看zSnos里面的循环,理论输出的应该是:

<li><img alt='' src='xxx.jpg' class='avatar avatar-40 photo' height='40' width='40' /><a href="xxx.html" title="on 文章标题">评论内容</a><br /><span class="rc_author">by 评论者</span></li>

可是添加了Willin的代码后,sidebar.php在执行过程中分为了两个,先8个循环输出头像,然后8个循环输出评论内容。评论框的样式就被破坏了。

求解救!牛人出马!z大能不能来?

发表评论?

34 条评论。

  1. 我不是Z大哈。应该是小问题,我明天用电脑看看啥样。现在手机看不出来

  2. 今天又尼基塔我家却没有网!

  3. 我用一个插件实现头像缓存的,代码版之前弄过,忘记什么原因没搞定,就换回插件了 😕

  4. 我的主机好像不支持 😈

  5. 一直没看出有什么问题,似乎一切正常

  6. 请教个小问题
    iTunes里下载了个.ipa程序。
    咋和手机不能同步类?
    同步完成后手机上木有软件。。
    😥
    完美越狱版5.01

  7. 有空搭了个环境用zbench测试了下.正常.
    用的willin头像缓存的第二种方法…
    你看我站..就是缓存本地了..
    我感觉既然能输出..只是样式不对,是不是CSS那里有问题了?
    或者是你用第二种代码试试…

  8. 一直用GravatarLocalCache,好用得很

发表评论


注意 - 你可以用以下 HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>