随机显示 WordPress 自定义默认头像

这个Gravatar头像一直在折磨国内WordPress用户,还好之前有WP爱好者创建了国内的Cravatar头像服务,为国内WordPress用户提供了极大的帮助。

WordPress
国内Gravatar头像的完美替代方案Cravatar
由于国内一直无法正常加载Gravatar全球通用头像,严重拖慢WordPress的加载速度,另外一些新手可能也不知道如何申请…

WordPress在“讨论”设置中有个设置默认头像的功能,用于网站留言者的邮箱未申请Gravatar头像,则显示后台设置的默认头像,但默认的图片不仅不好看,而且看着无头像的评论者都显示同一张古怪的图片,单调无趣,是否可以随机显示一些预设的自定义图片呢,答案是可以的,之前的文章:

WordPress
WordPress随机显示本地头像
Gravatar头像加载缓慢的问题,一直困扰着我们,启用头像本地缓存或者缓存到类似七牛云上可能是唯一可行的办法。 还有一个让…

但该方法有个问题,就是有头像的用户也会显示随机图,只解决了单调,却影响了正常的功能。下面结合国内的Cravatar头像服务,说一下终极解决方法:

随机显示 WordPress 自定义默认头像

首先需要将Gravatar头像服务替换为将国内的Cravatar头像,否则头像可能根本就不显示或者加载异常缓慢,将代码添加到当前主题函数模板functions.php中:

function get_cravatar_url( $url ) {
	$sources = array(
		\'www.gravatar.com\',
		\'0.gravatar.com\',
		\'1.gravatar.com\',
		\'2.gravatar.com\',
		\'secure.gravatar.com\',
		\'cn.gravatar.com\'
	);
	return str_replace( $sources, \'cravatar.cn\', $url );
}

网上常见的自定义Gravatar默认头像的代码大概是这样:

add_filter( \'avatar_defaults\', \'default_avatar\', 10, 1 );
function default_avatar( $avatar_defaults ) {
	$zmavatar = 图片地址;
	$avatar_defaults[ $zmavatar ] = \'自定义\';
	return $avatar_defaults;
}

是一张固定的图片,下面是随机默认头像实现方法:

在当前主题目录新建一个名称为avatars目录,其中放置tx1.jpg、tx2.jpg、tx3.jpg、tx4.jpg….若干随机头像图片。

将下面代码同样添加到当前主题函数模板functions.php中:

add_filter( \'pre_option_avatar_default\', \'zm_random_default_avatar\' );

function zm_random_default_avatar ( $value ) {
	return get_stylesheet_directory_uri() . \'/avatars/tx\' . rand( 1, 5 ) . \'.jpg\';
}

可以修改其中图片名称前缀tx和预设的随机头像数量5。

提示

如在本地环境折腾这个自定义Gravatar默认头像,是不会显示自定义图片的,也就是这些随机自定义头像图片必须是在网络环境中才会显示。

    © 版权声明
    THE END
    喜欢就支持一下吧
    点赞0 分享
    评论 抢沙发

    请登录后发表评论

      暂无评论内容