基于canvas,通过toDataURL动态生成base64图片。目前我主题的Gravatar头像,就是利用这个LetterAvatar脚本实现未设置Gravatar头像则读取ALT标签,自动生成首字图片替代默认的头像图片。之前已有WP爱好者制作了一款:mk-letter-avatar 字母头像插件,试了一下很好用,不过打开浏览器开者工具发现产生大量404错误,看了一下源代码,该插件是通过无头像返回404错误,触发onerror事件用自动生成的字母图片替换src图片地址,判断方式不是很合理,如果不是因为个缺点我都想直接拿来用了,如果作者再优化一下,绝对是款优秀实用的插件。我的实现原理和插件不同,配合头像本地缓存功能,判断无头像后,直接为无头像的图片添加特定的class类,然后通过LetterAvatar脚本替换图片。需要注意的是上面提到的插件,Gravatar头像图片必须有alt标签属性,否则不会生成正常的图片,可惜大部分主题默认Gravatar头像alt标签属性是空的.....如果想自动为Gravatar头像添加alt标签属性,可以将下面的代码添加到当前主题函数模板functions.php中:function zm_gravatar_alt($altgravatar) { if (have_comments()) { $alt = get_comment_author(); } else { $alt = get_the_author_meta('display_name'); } $altgravatar= str_replace('alt=''', 'alt='' . $alt . '' title='Gravatar for ' . $alt . ''', $altgravatar); return $altgravatar;}add_filter('get_avatar', 'zm_gravatar_alt');之后,自动将评论者昵称做为alt属性。本文只是自己做个记录,并不是教大家怎么弄这个头像,如果认为这字母头像还不错,请直接使用上面介绍的插件。展开另附LetterAvatar脚本演示代码:

Letter Avatar

 用法:

<img src="" class="avatar photo" width="256" height="256" alt="知更鸟" color="#c40000">

 知更鸟更鸟鸟 

原项目地址:https://github.com/daolavi/LetterAvatar

本文为微慕wordpress小程序网站转载文章,如有问题联系我们删除。
原文地址:https://zmingcx.com/letteravatar.html