下面由wordpress技巧栏目给大家介绍关于用字母替代图片脚本:letteravatar,希望对需要的朋友有所帮助!
基于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中:
functionzm_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=\'Gravatarfor'.$alt.'\'',$altgravatar);return$altgravatar;}add_filter('get_avatar','zm_gravatar_alt');