设置 WordPress 自定义默认头像

WordPress 评论上的默认头像很单调,无非就神秘人、空白、Gravatar 标志、抽象图形、Wavatar、小怪物这六种,尤其是后面几种,奇丑无比,在 WordPress 后台的讨论设置中,就没有更多的头像选项了,这让追求多样化的朋友很尴尬。Wordpress 也知道 Gravatar 默认的头像难看,所以提供了默认头像的函数,只是没有集成到后台中,所以我们只能手动将这个功能调用出来。

方法有两种,一种是相当于 CSS 中的内联,另一种则相当于 CSS 中的外联。此话怎讲?第一种“内联”的方式就是直接在头像的函数中设置参数,这个和内联的 CSS 很像,优先级最高,无人能敌。第二种就是“外联”的方式,就是用勾子写进头像的函数,这个和外联的 CSS 很像,优先级虽然没有内联的高,但是覆盖范围广,今后维护方便。

先说第一种内联的方法吧。我们先看 WordPress 中 get_avatar() 这个函数的用法:

<?php echo get_avatar( $id_or_email, $size, $default, $alt ); ?>

请中 $default 这个参数就是设置默认头像用的,比如:

<?php echo get_avatar($comment,$size='48',$default='http://www.wange.im/images/default-gravatar.png'); ?>

就是这样,只要把 $default 定义为需要默认头像的链接就可以了。

再说第二种外联的方法。把以下代码复制到 WordPress 主题目录下的 functions.php 文件中:

add_filter( 'avatar_defaults', 'default_avatar' );
function default_avatar ( $avatar_defaults ) {
    $myavatar = get_bloginfo('template_url'). '/images/default-avatar.jpg';    //默认图片路径
    $avatar_defaults[$myavatar] = "默认头像";    //后台显示名称
    return $avatar_defaults;
}

然后把需要的默认的 Gravatar 头像放在相应的目录下就可以了,另外,用这种方法还需要注意的一点是,get_avatar() 函数中不能有 $default 这个参数,原因就像之前说的外联内联一样,$default 参数相当于内联,优先级要高于勾子。确定以上步骤正确之后,我们再去 WordPress 后台的讨论设置中,这时候就可以看到在底部的头像选项中,多了一项 Gravatar 默认头像的选项,这就是我们刚才上传的头像图片,选中保存就可以了。

本人比较俗,什么内联外联的,居然把 PHP 和 CSS 混为一谈,又要误导小盆友了,我一个人俗就可以了,大家不要学我哦。

  1. 博主,我在现实中遇到这样一个问题:我的博客文章主要来自投稿,为了保护版权鼓励作者,我需要自己不断地去添加新用户并为新用户注册头像。真诚请教您有没有办法解决这个问题?可不可以在每篇文章的编辑页面添加用户的名称、头像、介绍信息而不重复添加用户呢?谢谢您!

  2. :cool: :cool: :lol: 呵呵,我的设置拉,是俺的属相,一直很可爱的牛牛,我的博上 也有自定义头像的设置方法,不需要更改代码就可以的,欢迎来看看

  3. 我之前用小怪物的自定义头像 每次看到都觉得是垃圾留言- -#
    此文很好 我要拿走!

  4. 一直沒有特意注意過默認頭像的問題,今天看到萬戈這篇文,才知道可以這樣折騰,其實想想,我折騰 WordPress 最大的樂趣,就是看到你們折騰大隊的創新發表文章啊~大家都好有巧思、好會折騰喔 :grin:

  5. 我有一个更低俗的想法,直接把默认头像图片换了如何,不知道行不行,不过这样升级时又得换一下。 :mrgreen:

    • 哈,又有一位大神要转入我们WP啦,欢迎欢迎,不过我没有用zblog转过,网上有不少教程,你可以参考一下

  6. 这个调用头像的函数可以利用到文章作者上不?比如此文章由谁发布 显示的是图片而不是文字...当然我那个是不行了 ... :lol:

  7. 虽然我知道这个方法N久之前就有了,但是我一直都没有去找相关的教程,今天算是学习了,个人比较喜欢第一种,直接该函数方便多了。