关于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 Replies to “关于Willin的Gravatar缓存的一点小问题”

          1. @Clarkok
            对啊。还有一个问题就是硬件不统一。加入Ubuntu像MacBook一样装在统一的硬件上,开发者的效率可以高很多的很多。图形界面也很快能赶超Macintosh,Windows也面临同样的问题。

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

      1. @Dick_Wu
        是用itunes安装的。点了应用。发现同步步骤里根本就没同步要安装的软件。。
        手机里面有装PP助手。现在想换为同步推。。
        死活装不上呢。不知道我哪步做错了?

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

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.