2010年09月03日 167条评论

让willin简单头像缓存函数my_avatar()真正支持alt

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

2012.03.19 Update:最新的详细方法到此新文章《重新整理: willin简单头像缓存函数my_avatar()

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

文章题目不知怎么说,算了,应该能清楚鸟。

willin最新版那个简单头像缓存函数 my_avatar() 里面的 $alt 参数其实是没有作用的,即使你设置为 true ,返回的只是 1,所以不能达到显示头像的 alt 值。

昨天 a-shun 提起要我帮忙解决一下,我稍微修改了一下解决鸟,顺便解决文囧问题。

最近有点文囧,所以简单的折腾也贴出来了……

『诶~不知道说啥,拖些长度,因为下面是代码,前面太少内容会影响美观』

先看看原来的代码

(代码原文:http://kan.willin.org/?p=1277

/* Mini Gavatar Cache by Willin Kan. */
 function my_avatar($email,$size='42',$default='',$alt=false){
     $alt=(false===$alt)?'' : esc_attr($alt);
     $f=md5(strtolower($email));
     $a= get_bloginfo('wpurl').'/avatar/'.$f.'.jpg';
     $e= ABSPATH.'avatar/'.$f.'.jpg';
     $t=1209600;//設定14天, 單位:秒
     if(empty($default))$default= get_bloginfo('wpurl').'/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);
     }
     if(filesize($e)<500) copy($default,$e);
     $avatar="<img title='{$alt}' alt='{$alt}' src='{$a}' class='avatar avatar-{$size} photo' height='{$size}' width='{$size}' />";
     return apply_filters('my_avatar',$avatar,$email,$size,$default,$alt);
 }>

具体怎么折腾willin的头像缓存我就不罗嗦了,去willin那里吧(貌似这几天博客挂了),等好了再CP过来加在这里吧,方便大家

附willin最新版简单头像缓存函数折腾方法:(待续,这里留空...)

那么继续我刚才说的,让函数真正支持头像的 alt 显示,代码变为如下

/* Mini Gavatar Cache by Willin Kan. */
 function my_avatar($email,$size='42',$default='',$alt=''){
     // $alt = (false === $alt) ? '' : esc_attr( $alt );
     $alt=(''==$alt)?'' : $alt;
     $f=md5(strtolower($email));
     $a= get_bloginfo('wpurl').'/avatar/'.$f.'.jpg';
     $e= ABSPATH.'avatar/'.$f.'.jpg'; $t=1209600;//設定14天, 單位:秒
     if(empty($default)) $default= get_bloginfo('wpurl').'/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);
     }
     if(filesize($e)<500) copy($default,$e);
     $avatar="<img title='{$alt}' alt='{$alt}' src='{$a}' class='avatar avatar-{$size} photo' height='{$size}' width='{$size}' />";
     return apply_filters('my_avatar',$avatar,$email,$size,$default,$alt);
 }

很简单,主要是用法稍微不同

my_avatar( $email, $size = '40', $default = '', $alt = '' )

$email: 评论者email
$size: 头像图片大小
$default: 默认头像位置,如果你不设置,那么在 avatar 缓存目录放一个 default.jpg 作为默认头像。
$alt: 评论者昵称

举例

1. 文章评论页面调用一般是这样:

<?php echo my_avatar($comment->comment_author_email,$size='40',$default='',$comment->comment_author);?>

不需要定义$default和$alt,下面这样就可以了

<?php echo my_avatar($comment->comment_author_email,$size='40');?>

2. 最新评论代码里(《带头像显示的最新评论代码 - 蛋疼篇》)是这样的:

my_avatar($rc_comm->comment_author_email,$size='40',$default='',$rc_comm->comment_author)

其实最重要就是参数啦,喜欢折腾的朋友折腾吧。

zww
or
oooo

“让willin简单头像缓存函数my_avatar()真正支持alt”有167条评论

  1. 书香阁 says:

    很好很强大 :mrgreen:

  2. 记号一下

  3. 绍兴seo says:

    太深奥了。看不懂。只能支持了。

  4. 原创技术贴,必须得顶

    1. zwwooooo says:

      @快乐的村长
      不算原创,只是修改

  5. 3q博客 says:

    还没有去折腾,先收藏了。

    1. zwwooooo says:

      @3q博客
      需要才折腾

  6. 园子 says:

    支持ALT的话更人性化了
    哈哈。

    1. zwwooooo says:

      @园子
      其实不用,主要是针对标准

  7. 郑永 says:

    我现在超级怕空间不够,因为只剩下1M了,晕哦,缓存怕怕。

    1. zwwooooo says:

      @郑永
      我这还很多空间,到时流量

  8. 继续学习

  9. mice says:

    :twisted: 看完评论 看完文章走人- -...

    1. zwwooooo says:

      @mice
      您辛苦了 :mrgreen:

  10. 终于折腾成功

    1. zwwooooo says:

      @亿品元素
      难怪我去看都ok了,呵呵

  11. 我用的是这个挂法(代码我省略了)

    add_filter('get_avatar', 'my_avatar');

    ,请问怎么折腾呀?

    1. zwwooooo says:

      @闲云野鹤
      按照上面不同之处改一下就行了

  12. 山水画 says:

    支持支持

  13. 真想用心看看

    1. zwwooooo says:

      @软件盒子
      文章不够好,我会继续努力让你用心看

  14. joyla says:

    :mrgreen: :mrgreen: :mrgreen: 这个我纯支持!呵呵

    1. zwwooooo says:

      @joyla
      谢谢支持 :mrgreen:

  15. 小邪 says:

    函数是完美了,唯一就是单字母的变量名太有型,让人蛋疼 ~ :shock: :shock:

    1. zwwooooo says:

      @小邪
      哈哈,反正是局部变量

  16. 任鸟飞 says:

    对SEO比较重视的人来说,这个函数的作用还是很大的。

    1. zwwooooo says:

      @任鸟飞
      对,有人需要就折腾一下

  17. 瓜瓜 says:

    前段时间已经用上了,不错不错,呵呵。

    1. zwwooooo says:

      @瓜瓜
      呵呵,能加就加上吧

  18. FORECE says:

    算了,我不折腾了。。。

    1. zwwooooo says:

      @FORECE
      喜欢才去折腾

  19. 貌似好复杂,其实我在zblog加avatar就一句话。 :mrgreen:

    1. zwwooooo says:

      @阅网博客
      这里说的是缓存,不是单单头像,wp默认支持,不需要加

  20. Lazyyyyyy says:

    发现Z叔叔的题目都好像报纸的标题,很一目了然~

    1. zwwooooo says:

      @Lazyyyyyy
      真的么?有这么厉害?哈哈哈

回复给 zigbee ¬
取消回复

昵称 *

网址

B em del U Link Code Quote