You are here: Home » All Categories » WordPress » WP Trick » willin 的简单 gravatar 头像缓存

willin 的简单 gravatar 头像缓存

Nov 19th, 2009 15:10 | Leave a comment?(133) Go to comments

2010.7.5 Update: willin升级了代码,更加方便,直接移步到这里》http://kan.willin.org/?p=1277 或者这里》http://zww.me/archives/25296

--------------------------

其实这个功能有很多种方法实现,有插件,有 showfom 的 《更换空间 + 再次提速之 Gravatar 头像缓存》,但 showfom 的方法对于使用 wp_list_comments() 不太方便而且比较麻烦。所以我选择了 Willin 的简单方法。具体的原理和方法请到 Willin 的原文章:传送门

这里我只说步骤,因为我 CP 党(CopyPaste党),所以方法自然就是 CP 级的了,也就简单易懂啦。

前提:

确定自己的模板主题文件 comments.php 用的是 WordPress 2.7 以后才有的 wp_list_comments()

开始:

1. 在 wp-content 的同级目录建立文件夹:avatar,权限为:755, 这是准备 gravatar 缓存的路径

2. 把一个50×50的jpg图片改名为:default.jpg,把它存到第1步建立的 gravatar 缓存文件夹 avatar 里面

3. 找到主题文件 comments.php 或是在 functions.php 里的 function mytheme_comment($comment, $args, $depth) 会有一段像下面这样一段代码:

<?php echo get_avatar($comment,$size='50',$default='<path_to_url>' ); ?>

替换成:

<?php
$p = 'avatar/';
$f = md5(strtolower($comment->comment_author_email));
$a = $p . $f .'.jpg';
$e = ABSPATH . $a;
if (!is_file($e)){ //当头像不存在就更新
$d = get_bloginfo('wpurl'). '/avatar/default.jpg';
$s = '32'; //头像大小 自行根据自己模板设置
$r = get_option('avatar_rating');
$g = 'http://www.gravatar.com/avatar/'.$f.'.jpg?s='.$s.'&d='.$d.'&r='.$r;
copy($g, $e);
if ( filesize($e) == 0 ){ copy($d, $e); }
};
?>
<img src='<?php bloginfo('wpurl'); ?>/<?php echo $a ?>' alt='' class='avatar' />

3. 没有了,简单不?
补充:

1. 如果你的主题比较老,在 comments.php 有下面这字段(function.php 没有自定义评论样式)

<?php echo get_avatar( $comment, 48 ); ?>

替换为:

<?php
$p = 'avatar/';
$f = md5(strtolower($comment->comment_author_email));
$a = $p . $f .'.jpg';
$e = ABSPATH . $a;
if (!is_file($e)){ //當頭像不存在就更新
$d = get_bloginfo('wpurl'). '/avatar/default.jpg';
$s = '48';//头像大小 自行根据自己模板设置
$r = get_option('avatar_rating');
$g = 'http://www.gravatar.com/avatar/'.$f.'.jpg?s='.$s.'&d='.$d.'&r='.$r;
copy($g, $e);
if ( filesize($e) == 0 ){ copy($d, $e); }
};
?>
<img src='<?php bloginfo('wpurl'); ?>/<?php echo $a ?>' alt='' class='avatar' />

2. 如果你用的是 MG12Elegant Box 主题,那么,打开 function.php,找到下面这句:

echo '<div class="userpic">'; echo get_avatar($comment, 24); echo '</div>';

替换为:

$p = 'avatar/';
$f = md5(strtolower($comment->comment_author_email));
$a = $p . $f .'.jpg';
$e = ABSPATH . $a;
if (!is_file($e)){ //當頭像不存在就更新
$d = get_bloginfo('wpurl'). '/avatar/default.jpg';
$s = '24'; //头像大小 自行根据自己模板设置
$r = get_option('avatar_rating');
$g = 'http://www.gravatar.com/avatar/'.$f.'.jpg?s='.$s.'&d='.$d.'&r='.$r;
copy($g, $e);
if ( filesize($e) == 0 ){ copy($d, $e); }
};
echo '<div class="userpic">'; echo '<img src="'; echo bloginfo('wpurl'); echo '/'; echo $a; echo '" class="avatar" /></div>';

3. 如果你用的是 MG12 的大名鼎鼎的 iNove 主题(测试版本是1.4.6),那么打开 function.php,找到:

<?php if (function_exists('get_avatar') && get_option('show_avatars')) { echo get_avatar($comment, 32); } ?>

替换为:

<?php if (function_exists('get_avatar') && get_option('show_avatars')) { //echo get_avatar($comment, 32); $p = 'avatar/'; $f = md5(strtolower($comment->comment_author_email)); $a = $p . $f .'.jpg'; $e = ABSPATH . $a; if (!is_file($e)){ //當頭像不存在就更新 $d = get_bloginfo('wpurl'). '/avatar/default.jpg'; $s = '32'; //头像大小 自行根据自己模板设置 $r = get_option('avatar_rating'); $g = 'http://www.gravatar.com/avatar/'.$f.'.jpg?s='.$s.'&d='.$d.'&r='.$r; copy($g, $e); if ( filesize($e) == 0 ){ copy($d, $e); } }; echo '<img src="'; echo bloginfo('wpurl'); echo '/'; echo $a; echo '" class="avatar" />'; } ?>

如果还有其他主题,我会陆续放上

注意:有些主机的特殊性可能无法使用这个功能,可以先试试插件能否成功运行再测试这个简单代码

声明: 除非注明,ZWWoOoOo文章均为原创,转载请以链接形式标明本文地址
本文地址: http://zww.me/archives/24711

Filed under

WP Trick

| Tags:

,

Related Posts

Most Popular

133 Comments.

⊕Leave a comment?
  1. Vicia Vicia Opera 10.10Windows XP

    还有专门针对iNove的,真是好人。 :mrgreen:

    21楼
    • zwwooooo zwwooooo Firefox 3.5.5Windows XP

      因为帮了麦田修改了Elegant Box,想到mg12的主题一样结构差不多就贴出来了

  2. 先看看 先看看 Maxthon 2.0Windows Vista

    貌似还比较复杂呢

    22楼
    • zwwooooo zwwooooo Firefox 3.5.5Windows XP

      因为主题太多太杂,所以修改起来还真是很复杂。

  3. 翔子 翔子 Internet Explorer 8.0Windows 7

    有时间好好折腾下 `

    23楼
  4. 太阳博客 太阳博客 Internet Explorer 7.0Windows XP

    先收藏了慢慢学习。

    24楼
  5. 小搓板 小搓板 Internet Explorer 8.0Windows XP

    又是看不懂的代码. 我愁.. :!:

    25楼
  6. 小T 小T Firefox 3.5.5Windows 7

    不晓得这个又能提多少速度 :razz:

    26楼
  7. 古墓候梅 古墓候梅 TheWorld BrowserWindows XP

    这么实用的东西,可惜我是用不上了。

    27楼
  8. huangjun huangjun Internet Explorer 6.0Windows Server 2003

    貌似在别的博客里也看到类似的教程列~

    28楼
    • zwwooooo zwwooooo Firefox 3.5.5Windows XP

      类似的方法很多,不过这里说的方法原创是willin

  9. 林木木 林木木 Google Chrome 4.0.249.0Windows 7

    我这主题也不知咋的,曾经试过,就是出错……现在用另外一种方法,万戈那淘来的

    29楼
    • zwwooooo zwwooooo Firefox 3.5.5Windows XP

      不能本地测试哦,直接在服务器上应该可以的

  10. 铵铵 铵铵 Internet Explorer 6.0Windows Server 2003

    :oops:
    老早就用上了.

    30楼
    • zwwooooo zwwooooo Firefox 3.5.5Windows XP

      我也老早用上了,只是觉得自己这里也放上,起码是简体的 :lol:

  11. 阿修 阿修 Google Chrome 3.0.195.33Windows 7

    我用的好像是这个吧……忘记了

    31楼
    • zwwooooo zwwooooo Firefox 3.5.5Windows XP

      你肯定和我一样是CP党!嘿嘿

      • 阿修 阿修 Google Chrome 3.0.195.33Windows 7

        CP多有意思……最少的时间达到想要的效果~~ :grin:

  12. 太阳博客 太阳博客 Internet Explorer 7.0Windows XP

    学习了。谢谢

    32楼
  13. Hobo Hobo Firefox 3.5.4Windows XP

    我空间很慢就不缓存在本地了

    33楼
  14. 小农夫 小农夫 Firefox 3.5.5Windows XP

    很实用的文章,收藏

    34楼
  15. 超人 超人 Internet Explorer 6.0Windows XP

    我用此方法就没成功过~

    35楼
    • zwwooooo zwwooooo Firefox 3.5.5Windows XP

      因为你没改对,又或者你的主机写权限什么的问题

  16. 619 619 Internet Explorer 8.0Windows 7

    暂时用不上!不过还是感谢分享!
    以后定有用得上的时候。 :mrgreen:

    36楼
  17. 疾风 疾风 Firefox 3.5.5Windows XP

    这个很有用啊,收藏个 有空给弄弄

    37楼
  18. LAONB LAONB Firefox 3.5.5Windows XP

    我开始就没弄明白,因为我是inove的山寨版,别的代码我都摸透了,就是模板看着眼前一黑,一直没去解剖它。
    刚好你发了这么实用的 :grin:

    38楼
  19. LAONB LAONB Firefox 3.5.5Windows XP

    第一步成功了,头像缓存了。
    顺便提醒,“把一个50×50的jpg图片改名为:default.jpg”
    大小要根据情况而定,我的是32 :lol:

    39楼
    • zwwooooo zwwooooo Firefox 3.5.5Windows XP

      我文章里也说了啊——虽然是后来补上的 :grin:

  20. 吖Bee 吖Bee Firefox 3.5.4Windows 7

    这个我用插件了

    40楼

Leave a Reply


Trackbacks and Pingbacks: