WordPress教程

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

阿里云

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

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

WordPress 随机显示本地头像加速访问 Gravatar 头像加载缓慢的问题,一直困扰着我们,启用头像本地缓存或者缓存到类似七牛云上可能是唯一可行的办 […]
日期:2021/12/25 阅读:1096阅读全文

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

也想出现在这里?联系我们
创客主机

section

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

  1. function get_cravatar_url( $url ) {
  2.     	$sources = array(
  3.     		'www.gravatar.com',
  4.     		'0.gravatar.com',
  5.     		'1.gravatar.com',
  6.     		'2.gravatar.com',
  7.     		'secure.gravatar.com',
  8.     		'cn.gravatar.com'
  9.     	);
  10.     	return str_replace( $sources, 'cravatar.cn', $url );
  11.     }

section

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

  1.     add_filter( 'avatar_defaults', 'default_avatar', 10, 1 );
  2.     function default_avatar( $avatar_defaults ) {
  3.     	$zmavatar = 图片地址;
  4.     	$avatar_defaults[ $zmavatar ] = '自定义';
  5.     	return $avatar_defaults;
  6.     }

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

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

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

  1.     add_filter( 'pre_option_avatar_default', 'zm_random_default_avatar' );
  2.  
  3.     function zm_random_default_avatar ( $value ) {
  4.     	return get_stylesheet_directory_uri() . '/avatars/tx' . rand( 1, 5 ) . '.jpg';
  5.     }

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

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

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

已有 285 人购买
查看演示升级 VIP立刻购买

收藏
(0)

发表回复

热销模板

Ashade - 作品展示摄影相册WordPress汉化主题
LensNews

本站承接 WordPress / PbootCMS / DedeCMS 等
系统建站、仿站、开发、定制等业务!