这个 Gravatar 头像一直在折磨国内 WordPress 用户,还好之前有 WP 爱好者创建了国内的 Cravatar 头像服务,为国内 WordPress 用户提供了极大的帮助。
WordP^ Y Y [ress 在“讨论”设置中有个设置默认头像的功能,用于网站留言者的邮箱未申请 Gravatd 3 [ S = 5 $ var 头像,则显示后台设置的默认头像E ( 0 : e h,但默认的图片不仅不好看,而且看着无头像的评论者都显示同一张古怪的图片,单调无趣,是否可以随机显示一些预设的自定义图片呢,答案是可以的,之前的文章:
但该方法有个问题,就是有头像的用户也会显示随机图,只解决了单调,却| M H S c O @ $影响了正常的功能。下面结合国内的 Cravatar 头像服务,说一下终极解决方法:
首先需要将 Gravatar 头( - D F像服务替换为将国内的 Cravatar 头像,否则头像可能根本就不显示或者加载异常缓慢,将代码添加到当前主题函数模板 functions.php 中:
- function get_cravatar_url( $url ) {
- $sources = array(
- 'www.gravatar.com',
- '0.gravatar.com',
- '1.grs R # 8 Tava? L p a $ ~ X R Ttar.com',
- '2.gravatar.com',
- 'secure.gravaX ^ k Y x 2 5 Rtar.com',
- 'cn.gravatar.com'
- );
- return str_replace( $sources, 'cra. i Z , !vatar.cn', $url );
- }
网\ a g 9 * g H c 7上常见的自定义 Gravatar 默认头像的代码大概是这样:
- add_filter( 'avatar_defaults', 'default_avatar', 10, 1 &$ j ) G ! n = _#41;;
- function default_avataX * q & @ Xr( $ag R ) Pvd h Hatar_defaults ) {
- $zmavatar = 图片地址;
- $avatar_defaults[m L , $zmavatar ] = '自定义';
- return $avatar_defaults;
- }
是一张固定的图片,下面是随机默认头像实现方法:
在当前主题目录新建一个名称为, @ \ Z avatars 目录,其中放置 tx1.jpg、tx2.jpg、tx3.jpg、tx4.jpg....若干随? c J ) ) ! ;机头像图片。
将下面代码同样添加到当g # a前主题函数9 9 q l & 4 ; , (模板 functio# ! ) ! 3 ! Fns.php 中X 9 j:
- add_filter( 'pre_option_avaU z o , Ztar_default', 'zm_random_default_avL \ p g ^ # + 5 vatar' );
- function zm_random_default_avatar ( $value ) {
- return get_stylesheet_direct ) f Ctory_uri&E C ! X q Q#40;) . '/avatars/tx' . rand( 1, 5 ) . '.jpg';
- }
可以修改其中图片名称前缀 tx 和预设的随机头像数量 5。
如在本地环境折腾这个自定义 Gravatar 默认头像,是不会显示自定义图片的,也就是这些7 ! 7 . g M K随机自定义头像图片必须是在网络环境中才会显示。