1

我刚刚将我的网站切换到 SSL,我的所有社交分享按钮计数都已重置为零,这是意料之中的,但显然可以告诉这些按钮使用旧的 http url 以恢复旧的计数。

我只是不知道如何为我的设置执行此操作,即 AddThis 用于按钮,Php/Html 用于代码(实际上是 Joomla,但这可能无关紧要)。

AddThis 代码很简单:

<div class="addthis_sharing_toolbox" data-url="THE URL"></div>

所以我最好的猜测是我需要获取当前的 URL,将其从 https 更改为 http,并将其插入到上面的“data-url”中。

但是看看这里的其他线程,关于如何安全和正确地获取当前 URL 似乎存在很多争议,所以这就是我卡住的地方。

(除此之外,我只需要对过去的文章进行此转换,而不是新文章,但那是另一回事了。)

有任何想法吗?

非常感谢,菲尔

4

4 回答 4

1

共享计数基于确切的 URL,不幸的是,每个共享服务(Facebook、Pinterest 等)的 API 将协议视为不同的 URL。

唯一可以防止丢失现有 URL 的共享计数的方法是将覆盖共享 URL 设置为旧的 HTTP URL。然后,您需要在您的网站上设置 301 重定向,以便在访问者从 Facebook(或任何其他服务)上的共享链接中单击旧 URL 后,将访问者从旧 URL 重定向到新的 HTTPS URL。

看起来您已经找到了更改共享 URL 的说明 ( http://www.addthis.com/academy/setting-the-url-title-to-share/ ),因此您只需设置 data-url属性为旧的 (HTTP) URL。

于 2016-09-12T16:03:31.860 回答
0

花了我一整天,但我终于想通了!给了我很多答案,但我仍然无法为 AddThis 调整它。

这是代码(第一行仅将修复应用于 2016 年 8 月 1 日之前发布的文章,因为我不需要对较新的文章进行更改):

<?php if (strtotime($this->item->publish_up) < 1470009600) : ?>
<script type="text/javascript">
function buttons(){
var kCanonical = document.querySelector("link[rel='canonical']").href;
window.kCompositeSlug = kCanonical.replace('https://','http://');
return;
}
buttons();
var addthis_share = { url: ''+kCompositeSlug+'' };
</script>
<?php endif; ?>
<script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ID-GOES-HERE" async="async"></script>
于 2016-09-13T16:08:45.463 回答
0

这是我在客户的 Joomla / K2 网站上工作的代码,这是我的项目模板覆盖的一部分:

<?php if (strtotime($this->item->publish_up) < 1503201600) : ?>
    <!-- Non SSL Command for buttons here -->
    <div class='shareaholic-canvas' data-app='share_buttons' data-app-id='YOURAPPIDHERE' data-link='http://www.yoursite.com<?php echo $this->item->link; ?>'></div>
<?php else: ?>
    <!-- Regular SSL Command for buttons here -->
    <div class='shareaholic-canvas' data-app='share_buttons' data-app-id='YOURAPPIDHERE'></div>
<?php endif; ?>

此处解决方案的详细信息/分析: https ://www.covingtoncreations.com/blog/solution-for-lost-share-count-after-moving-to-ssl-https

于 2017-08-21T14:31:59.590 回答
0

它是否适用于使用 Sharethis 而不是 AddThis 的 Joomla 网站?目前我在

<script type="text/javascript">var switchTo5x=true;</script>
<script type="text/javascript" src="https://ws.sharethis.com/button/buttons.js"></script>
<script type="text/javascript">stLight.options({publisher: "XXXXXXXXXXXX", doNotHash: false, doNotCopy: false, hashAddressBar: false});</script>
<meta property="fb:app_id" content="XXXXXXXXXXXX"/>
<div id="fb-root"></div>
<script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&appId=XXXXXXXXXXXX=v2.0";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
于 2017-09-14T08:35:37.157 回答