失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > WordPress为没有Gravatar加载随机头像的用户

WordPress为没有Gravatar加载随机头像的用户

时间:2024-04-08 08:49:43

相关推荐

WordPress为没有Gravatar加载随机头像的用户

教程介绍

当你想到判断用户是否存在时gravatar头像的时候,大部分都能在网上找到一些老办法,就是通过get_headers远程取得gravatar一个服务器响应 HTTP 请求发送的所有标头。检查是否为404,然后回头判断是否应加载自定义头像。

思路

正因为如此,我们通常不使用上述方法get_headers这个过程非常耗时。JV提供两个更快的想法。

都是不通过get_headers直接使用前端和wp没有现有的默认手段来实现gravatar头像用户加载随机头像的目的。

根据gravatar关于头像请求中d参的介绍,我们可以拿404和Default Image前端输出有两种形式。

在主题的 functions.php 添加以下代码

/** * 为没有Gravatar加载随机头像的用户 * @author INLOJV * @URI /0521randomgravatar.html ‎ * */add_filter( get_avatar , inlojv_custom_avatar , 10 , 5 );function inlojv_custom_avatar( $avatar, $id_or_email, $size, $default, $alt) {global $comment,$current_user;// $id_or_email值:后台右上角登录用户头像id,其他的都是邮箱,下面做一个判断$current_email = is_int($id_or_email) ? get_user_by( ID, $id_or_email )->user_email : $id_or_email;$email = ! get_user_by( ID, $id_or_email )->user_email : $id_or_email;$email = !empty($comment->comment_author_email) ? $comment->comment_author_email : $current_email ;$random_avatar_arr = array(///square/6b002b97gy1ffs6ulm8ojj20690690sl.jpg,///square/6b002b97gy1ffs6ulfp76j2069069t8p.jpg,///square/6b002b97gy1ffs6ukuo5dj2069069a9w.jpg,///square/6b002b97gy1ffs6ujijfoj206z05l746.jpg,///square/6b002b97gy1ffs6uimd6zj207705edfr.jpg);$email_hash = md5(strtolower(trim($email)));$random_avatar = array_rand($random_avatar_arr,1);$src = $random_avatar_arr[$random_avatar] ;// JV提示:d参数404 onerror 方法 - 速度最快$avatar = "";// JV提示:d参数default_img 方法 - 速度稍逊//// $src = urlencode( $src );//$avatar = ""; return $avatar;}

代码中注释的第一种方法是直接使用img标签的onerror属性,当图片链接返回404时,直接输出我们定制的随机图片;第二种方法是使用d参数返回默认链接来加载随机图片。

另外,我把随机图片写成几组,这样你就可以用外链图片链接作为随机头像链接。如果需要添加新图片,可以根据样画葫芦的每行添加图片外链。 以上!

Gravatar官方参考资料:/site/implement/images/

如果觉得《WordPress为没有Gravatar加载随机头像的用户》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。