您的位置:首页»WordPress 教程, 主题开发, 进阶使用»  如何在 WordPress 中添加 Gravatar 默认头像

如何在 WordPress 中添加 Gravatar 默认头像

我们知道 WordPress 会自动匹配评论者/留言者的 email 并据此显示其 Gravatar 头像,但对于仍未使用 Gravatar 头像的评论者/留言者,便只显示丑丑的默认头像。你是不是和辐射鱼一样,早看这几个丑丑的默认头像不顺眼了呢?别担心,强大的 WordPress 已经为我们考虑到了这个问题,我们只需用 WordPress filter action 替换 avatar_defaults,即可新增一个图片作为默认头像,效果图如下:
在 WordPress 中添加默认 Gravatar 头像
add_filter() 过滤器函数使用释疑
我们使用 WordPress 函数时,可以通过 add_filter() 过滤器钩子添加你的新过滤器。使用方法:

add_filter(’hook_name’, ‘your_filter’, [priority], [accepted_args]);

hook_name:WordPress 提供的过滤器钩子,即你要 hack 的函数;
your_filter:你为 hook_name 定义的新函数名,它可以是一个 php 自带函数,一个 WordPress 核心函数,或是一个你的自定义函数;
priority:这是一个整型的可选参数,它用来指定为一个过滤器钩子应用过滤器的顺序,其默认值为10,一个拥有优先级为 1 的过滤器将会比拥有优先级为 2 的先被应用,数字越小,其优先级将越高;
accepted_args:这也是一个整型的可选参数,用以定义你的函数能接收多少个参数,默认值为 1。
下面,开始我们的小手术吧!!!
在主题 functions.php 文件中自定义 Gravatar 默认头像

1
2
3
4
5
6
7
8
// add default gravatar
add_filter( 'avatar_defaults', 'newgravatar' );
 
function newgravatar ($avatar_defaults) {
    $myavatar = get_bloginfo('template_directory') . '/images/boy.jpg';
    $avatar_defaults[$myavatar] = "eachSite";
    return $avatar_defaults;
}

使用方法

  1. 复制以上代码到主题 functions.php 文件中
  2. 上传 boy.jpg 文件到 wp-content/themes/yourusingtheme/images/ 目录

update:经雪深提醒,新增使用 get_avatar 为 WP 自定义 Gravatar 默认头像
另外:使用 WordPress2.7 的同学,最好使用 add_filter() 为 WordPress 添加 Gravatar 默认头像!!!
怎么样,对这篇 WordPress 教程感兴趣吧?

10个评论

  • Reply 1 雪深

    March 12th, 2009 at 11:00

    safa
    广告位招租

  • Reply 2 雪深

    March 12th, 2009 at 11:02

    好像现在只要在主题了添加相应的函数就可以了 没有博客说得这么复杂吧

    • Reply 3 辐射鱼

      March 12th, 2009 at 11:10

      哦,什么函数?我还不知呢

  • Reply 4 雪深

    March 12th, 2009 at 11:03

    博客说错 是博主

  • Reply 5 LOKE

    March 12th, 2009 at 17:41

    囧,我相信以后会有更简单的设置的!

    • Reply 6 辐射鱼

      March 12th, 2009 at 17:42

      这个支持在后台设置,很简单了。经雪深提醒,在codex上发现了,只需简单一个函数,但个人感觉没这个直观

  • Reply 7 吖Bee

    March 12th, 2009 at 19:39

    反而,我感觉这种方法更简单~~

  • Reply 8 林木木

    March 13th, 2009 at 11:29

    恩,这东西写出来也蛮有必要的,因为发现还是蛮多人没设置空白的。

    • Reply 9 辐射鱼

      March 13th, 2009 at 12:17

      呃,设置一个独特的默认头像还是蛮有必要的