多说其实是个还不错的社会化评论插件

支持多个网站的账号快捷登陆,虽然某些行为有些流氓,但仍旧算是十分流行的一个系统

可是多说在HTTPS下的兼容性十分糟糕,头像仍旧调用HTTP

导致浏览器报出不安全的警告,可以通过下面的办法解决这个问题

一、建立一个PHP文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
ob_start();
$src = $_GET['s'];
$src = preg_replace('/http:\/\/.+\.gravatar\.com/', 'http://cn.gravatar.com', $src);
$timeout = stream_context_create(array(
 'http' => array(
  'timeout' => 1.0
 )
));
$data = file_get_contents($src, 0, $timeout);
if ($src != 'null') {
 header('Content-Type:image/png');
 if (substr($data, 0, 3) === "\xFF\xD8\xFF" || substr($data, 1, 3) === "\x50\x4E\x47") {
  echo $data;
 } else {
  echo file_get_contents(dirname(__FILE__) . "/none.jpg", 0, $timeout);
 }
} else {
 echo file_get_contents(dirname(__FILE__) . "/none.jpg", 0, $timeout);
}
//原作者:  https://geeku.net/1878.html
//老D稍加改造

例如我保存为:ds.php

传到images目录之后得到的地址是

https://laod.cn/images/ds.php?s=


以上代理结束。接下来来搞多说的设置

然后把多说的js文件搞到本地

http://static.duoshuo.com/embed.js

嗯,压缩过的很难阅读,在线格式化一下。

然后搜索

1
2
3
avatarUrl: function(e) {
                return e.avatar_url || rt.data.default_avatar_url
            }

替换(修改)为:

1
2
3
avatarUrl: function(e) {
                return 'https://laod.cn/images/ds.php?s='+e.avatar_url || 'https://laod.cn/images/ds.php?s='+nt.data.default_avatar_url
            }

保存

1
embed.js

把这个放到你的站点目录下

二、把默认头像也保存到网站目录:

多说完美支持HTTPS(SSL)头像解决方案-老D

默认头像

三、修改多说插件文件:

进入后台-插件-编辑,选择多说,再找到Wordpress.php,全部复制出来,寻找embed.js

分别修改:第596、598、619行

多说完美支持HTTPS(SSL)头像解决方案-老D

 

都修改为上面的ds.php所在的地址(根据你上传的路径)

四、保存覆盖后,若有WP Super Cache,请删除缓存。

以前的评论带有微博表情的需要自己删除~~~

 

如果你有更好的办法请留言!