关闭边栏(ESC)打开边栏(ESC)
昨天在弄评论区整合读者墙功能时,用户的头像如果是访客的话,或者没有填写邮件地址或没有在Gravatar自定义头像的话,会显示官方默认的那个蓝色图的头像。本来后台设置-讨论中有设置一个头像作为默认头像的,测试一直没反应,最终发现问题在这里
在黑糖主题的function.php文件中
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
/* ================================================== 调用ssl 头像链接 ================================================== */ function get_ssl_avatar($avatar) { if (is_admin()) { $avatar = preg_replace('/.*\/avatar\/(.*)\?s=([\d]+)&.*/','<img src="https://secure.gravatar.com/avatar/$1?s=$2" class="avatar avatar-$2" height="$2" width="$2">',$avatar, 0); } else { $avatar = preg_replace('/.*\/avatar\/(.*)\?s=([\d]+)&.*/','<img src="https://secure.gravatar.com/avatar/$1?s=$2" class="avatar avatar-$2" height="$2" width="$2">',$avatar); } return $avatar; } if (cs_get_option('i_function_avatar_ssl_switcher')) { add_filter('get_avatar', 'get_ssl_avatar'); } |
后台主题设置中不勾选这个功能就可以了,然后就能正常显示后台设置的默认头像了
后台自定义设置一个默认头像的代码
1 2 3 4 5 6 7 8 9 10 |
add_filter( 'avatar_defaults', 'defaultGravatar' ); function defaultGravatar ($avatar_defaults) { if (!cs_get_option('i_function_avatar_location')) { $myAvatar = get_template_directory_uri()."/assets/images/favicon.png"; } else { $myAvatar = cs_get_option('i_function_avatar_location'); } $avatar_defaults[$myAvatar] = "本地头像,可以在主题配置中设置"; return $avatar_defaults; } |
设置好后,在“设置-讨论-默认头像”就能勾选自定义的头像了。
我想要的就是这个效果来着,这个是怎么判断用户邮件有没有自定义头像的呢?我现在就卡在这上面找不到好的方法。现在没有WORDPRESS的环境了,我又懒得去翻WORDPRESS的后台代码,纠结。。。
wordpress 里有这个函数的,get_avtar会自动处理的呀,如果不是Wordpress,那我就帮不上你了,哈
这个函数的位置在哪个文件里噢?我可以下个WP程序去找一下看看
函数位于:wp-includes/pluggable.php
看了下获取到的地址,貌似我现在用的方法是跟WP里的函数方法是一样的,看来不用去找了。这个方法可行,不过还是牺牲了一些速度的。
好像可以
不填邮箱,在你这里测试一下。
好 我试一下