- A+
wordpress网站使用的知更鸟主题在开启https后出现了百度分享链接标红以及无法评论或评论出现站点不安全的提示问题,该怎么解决呢?下面具体说说如何处理:
一、百度分享按钮不安全提示
开启https后在控制台看到百度分享出现requested an insecure script “http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion=427919”This request has been blocked; the content must be served over HTTPS。这是因为百度分享不支持https,需要将百度分享进行本地化。
首先下载如下静态文件,
密码: xncq然后将解压出来的static目录放入该网站的根目录,和wp-content,wp-includs等目录平齐。
最后将/wp-content/themes/begin/js/bd-share.js文件里面第15行注释掉,16行开启同时修改其中的网址为自己的。结果如下:
//with(document) 0[(getElementsByTagName('head')[0] || body).appendChild(createElement('script')).src = 'http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion=' + ~ ( - new Date() / 36e5)];
with(document) 0[(getElementsByTagName('head')[0] || body).appendChild(createElement('script')).src = 'https://自己的网址/static/api/js/share.js?v=89860593.js?cdnversion=' + ~ ( - new Date() / 36e5)];// 用于本地调用
经过以上三步处理后就不会再出现百度分享不安全的提示了。
二、评论错误及不安全提示
1.评论无法提交错误的问题:开启https后需要在主题基本设置中开启Ajax评论,勾选上即可。这样就可以提交评论了。
2.在控制台中评论出现不安全的提示,contains a form which targets an insecure “endpointhttps://bk.az009.com/wp-comments-post.php”出现这个问题是因为在form表单动作中调用了echo get_option('siteurl'); 而网站的siteurl对应的值是http协议开头的网址。因此只需要找到该文件进行修改即可。
找到/wp-content/themes/begin/comments.php这个文件,第28行echo get_option('siteurl'); 然后将其改为echo $_SERVER['HTTP_HOST']; 即可。
三、图片不安全提示
图片不安全提示的修复方式有多种,一个是修改数据库地址,不过这种是临时做法,以后添加图片还是会出现这个问题。 二个是进行文本替换,在functions中添加功能即可,这里介绍使用第二种方式。
在/wp-content/themes/begin/functions.php文件最后面加入如下代码即可,也可在后台自定义中进行修改添加。
- function https_image_replacer($content){
- if( is_ssl() ){
- /*已经验证使用 $_SERVER['SERVER_NAME']也可以获取到数据,但是貌似$_SERVER['HTTP_HOST']更好一点*/
- $host_name = $_SERVER['HTTP_HOST'];
- $http_host_name='http://'.$host_name.'/wp-content/uploads';
- $https_host_name='https://'.$host_name.'/wp-content/uploads';
- $content = str_replace($http_host_name, $https_host_name, $content);
- }
- return $content;
- }
- add_filter('the_content', 'https_image_replacer');