zwwooooo : http://img.ly/Dgs http://img.ly/Dgt http://img.ly/Dgu

willin 的简单 gravatar 头像缓存

其实这个功能有很多种方法实现,有插件,有 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's Blog [ http://zww.me ]
» » » » 本文链接地址:http://zww.me/archives/24711


» 收藏本文:Delicious / Digg / QQ书签 / 百度收藏 / Google收藏 / 收藏到鲜果
» 订阅本博:FeedBurner 订阅 || FeedSky 订阅 : Google Reader / 有道 / QQ邮箱 / 鲜果 / 豆瓣 / 抓虾

相关文章 Related posts

Leave a comment

97 Comments.

  1. Google Chrome 3.0.195.33 Google Chrome 3.0.195.33 Windows 7 Windows 7

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

  2. Firefox 3.5.4 Firefox 3.5.4 Windows XP Windows XP

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

  3. Internet Explorer 8.0; Internet Explorer 8.0; Windows 7 Windows 7

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

  4. Firefox 3.5.5 Firefox 3.5.5 Windows XP Windows XP

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

  5. Firefox 3.5.5 Firefox 3.5.5 Windows XP Windows XP

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

  6. Firefox 3.5.5 Firefox 3.5.5 Windows XP Windows XP

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

  7. Google Chrome 4.0.258.0 Google Chrome 4.0.258.0 Windows 7 Windows 7

    国内主机似乎就不需要这样啦! :?: :?: :razz:

  8. Firefox 3.5.5 Firefox 3.5.5 Windows XP Windows XP

    先mark,等这几天忙完了在折腾wp

  9. Google Chrome 4.0.249.30 Google Chrome 4.0.249.30 Windows XP Windows XP

    能放个我的主题方法不,谢谢啊。

  10. Firefox 3.5.5 Firefox 3.5.5 Windows XP Windows XP

    弄这个效果最大的好处是什么?就是网站打开速度快了?

  11. Google Chrome 3.0.195.38 Google Chrome 3.0.195.38 Windows Vista Windows Vista

    嗯,这个不错的方法,那要是自动刷新缓存的么?还是手动刷新?

  12. Google Chrome 4.0.249.89 Google Chrome 4.0.249.89 Windows XP Windows XP

    在 functions.php 里面找不到 get_avatar 的怎么办。。。 :oops:

Leave a Reply



[ Ctrl + Enter ]

Trackbacks and Pingbacks: