WordPress默认调用Gravatar服务器,Gravatar已经被墙,导致评论头像不能正常显示。
以下为代码,可以准备一些本地图片代替WordPress自带的头像。
将下面代码添加到当前主题文件夹下的functions.php
中:
1 2 3 4 5 6 7 8 9 10 11 12 |
// 随机显示评论头像 add_filter( 'get_avatar' , 'local_random_avatar' , 1 , 5 ); function local_random_avatar( $avatar, $id_or_email, $size, $default, $alt) { if ( ! empty( $id_or_email->user_id ) ) { $avatar = ''.get_template_directory_uri().'/avatar/admin.gif'; }else{ $random = mt_rand(1, 10); $avatar = ''.get_template_directory_uri().'/avatar/'. $random .'.gif'; } $avatar = "<img alt='{$alt}' src='{$avatar}' class='avatar avatar-{$size} photo' height='{$size}' width='{$size}' />"; return $avatar; } |
其中:mt_rand(1, 10);
数字为随机图片张数可以自行修改。
在当前主题目录中新建一个名称为avatar的文件夹,里面放10张名称连续的jpg图片,比如1.png、2.png、3.png……,和一张用于管理员的图片,如admin.png。
添加上述代码后,只有管理员是显示固定的图片,其他留言者都是随机显示预先准备的头像图片,包括注册用户。
分享几个插件:
本地上传头像插件:Simple Local Avatars,让注册用户在后台上传头像,从而显示自己固定的头像;
用留言者名称第一个字母为头像的插件:WP First Letter Avatar;
WP User Avatar,支持用户自定义上传头像。
