设置 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 混为一谈,又要误导小盆友了,我一个人俗就可以了,大家不要学我哦。