现在站点升级到 HTTPS是一个不可逆转的大趋势,所以建议大家有可能还是尽快把站点升级到 HTTPS 为好。今天的主题不是教大家如何升级 HTTPS,而是重点说一下使用zbpNana 主题的站点升级 HTTPS 遇到的两个比较“刺手”的问题如何解决。
问题一:评论头像引用还是 HTTP
这个问题是因为 zbpNana 主题把评论头像写死为 http://cn.gravatar.com/,所以解决的办法也很简单,只需要编辑 zb_users\theme\zbpNana\template\comment.php、commentpost.php 和 module-comments.php 文件,把 http://cn.gravatar.com/改为 https://cn.gravatar.com/即可。
题外话
由于 zbpNana 主题的评论头像是采用头像 404 的方法来判断评论邮箱是否存在gravatar 头像,如果没有就自动变成字母头像。这种做法就是会出现一些错误链接,正常用户是看不到错误提示的,只有通过浏览器查看元素或者检查中的 Console才能看到,如果介意的可以按以下方法去掉字母头像判断或者自行改进方法。
在上文所说到的三个文件中的寻找以下代码
- src="http://cn.gravatar.com/avatar/{$avatar}&r=X&s=56?d=404" onerror='javascript:this.src="{$zmavatar}";this.onerror=null;'
直接修改为
- src="https://cn.gravatar.com/avatar/{$avatar}&r=X&s=56"
PS:其中 s=56 保持默认即可,如果原来是 s=50 就 50,而不是都是 56 哦。
问题二:百度分享还是 HTTP
这个问题是因为百度分享尚未支持 HTTPS 站点导致,所以我们只能人工修改百度分享的引用代码,具体的做法可以参考《百度分享加载很慢和不支持 https 的解决办法》这篇文章,把 static 文件夹直接上传到网站根目录中,然后修改我们站点引用百度分享 JS 文件的路径,直接打开 zb_users\theme\zbpNana\template\footer.php 文件,找到以下代码:
- http://bdimg.share.baidu.com/static/api/js/share.js
修改为
- /static/api/js/share.js
即可。
总结
本文教程不单单适用于 zbpNana 主题,同样也适用于 zblogPHP 版本的 Blogs 主题,所以大家如果使用懿古今分享的 zbpNana 主题和 zblogPHP 版本的Blogs 主题,在升级站点到 HTTPS 遇到小绿锁不显示的情况下,可以看看是不是这两个问题导致,如果是的话可以参考本文解决,如果不是只能自行百度解决了。
话题拓展
如果使用懿古今分享的Nana 主题和 WordPress 版本的 Blogs 主题在升级 HTTP 的时候,遇到百度分享不现实或者小绿锁不显示问题,可以参考本文问题二的解决办法去解决。如果遇到评论头像引用 HTTP 导致小绿锁不显示,可以直接打开主题文件中的 functions.php 文件,找到 http://cn.gravatar.com/avatar/直接修改为 https://cn.gravatar.com/avatar/即可。
发表于2018-03-21 14:48 沙发
其实最好的解决方案就是在写主题的时候,尽量用相对地址。这样一来,无论SSL与否,都能兼容!
@橘子书[呲牙] 一直都不喜欢使用相对地址,其实当初直接写死HTTPS地址就OK了
发表于2018-03-21 16:59 板凳
写死的这点,强烈谴责。
表示完全可以//嘛~
@姜辰[呲牙] 一般改动不大的情况下我都喜欢写死
发表于2018-03-21 18:27 地板
很简单的事情,把所有http换成//就可以了啊。
@大事记其实就一个头像地址,当初直接写成HTTPS地址就搞定了
发表于2018-03-22 09:20 4楼
居然将链接写死在页面,这一点值得给你点赞
@灰狼[偷笑] 因为一般不需要改动的东西我都喜欢写死,当初没有想到HTTPS问题,其实当初如果直接写成HTTPS的地址就什么问题都没有
发表于2018-03-22 10:38 5楼
分享一个主题真的是费神呐
@西枫里博客分享了主题,遇到问题就要解决,所以很多人喜欢自己折腾自己用不分享
发表于2018-03-22 11:24 6楼
其实我的解决方法是,直接用gravatar头像插件,然后在模板文件里面把写死的htt p://cn.gra vatar.com/ 给替换成插件的调用标签了,优点是可以随着插件随时改变头像源。。。
@倚竹聽雨gravatar头像一般填写一个能用的地址就行,为此而用一个插件,个人认为不划算。
@懿古今[衰] 懒人的做法,主要是怕某个源挂了,还要手动改,所以就这么搞了,虽然挂的几率不大。
发表于2018-03-22 12:55 7楼
不应改写成死的。WP有个函数is_ssl(),然后加个判断,就不用手动改了。
@大致其实当初我直接把获取头像的地址写成HTTPS就行,像这种固定链接的感觉不用is_ssl()判断,可能效率更好
发表于2018-03-22 21:09 8楼
机智的我早早的上了https
@小C博客[赞] HTTPS应该是大趋势,以后所有站点应该都是HTTPS