【问题标题】:Make ShareThis (a script) load on certain pages only仅在某些页面上加载 ShareThis(脚本)
【发布时间】:2017-10-20 18:38:03
【问题描述】:

我们有一个 WordPress 网站,我们使用一个程序为我们的网站创建共享按钮。这称为 ShareThis。要将它集成到我们的网站,我们所要做的就是将以下脚本添加到我们的 header.php 中。

<script type='text/javascript' src='//platform-api.sharethis.com/js/sharethis.js#property=58ff3bc2a9dabe0012b03357&product=inline-share-buttons' async='async'></script>

我们做到了——而且运行良好。但是有没有办法让这个脚本只加载到我们的博客上,而不是加载到我们网站的每个页面上?它使我们的网站速度降低了大约 400 毫秒,并且仅在我们的博客文章中使用。

【问题讨论】:

  • 会不会在第一次请求后不缓存,然后not在后续请求中多花400ms?
  • 缓存后肯定会变快,但是有什么理由让它加载到任何不必要的页面上吗?换句话说,使用以下建议的代码仅将其加载到博客上是否有任何缺点?我们没有其他需要使用共享的领域。

标签: javascript php wordpress


【解决方案1】:

实际上有一个简单的方法可以做到这一点。 在您的标题中,您可以执行此操作。首先我会解释什么,然后你是怎么做的。

您可以通过检查$_SERVER['REQUEST_URI'] 变量是否以“博客”或要加载的所需页面前缀开头来轻松完成此操作,例如http://yoursite.com/blog/(post)

操作方法:

if (0 === strpos($_SERVER['REQUEST_URI'], '/blog')) {
    // Load script
    echo "<script type='text/javascript' src='//platform-api.sharethis.com/js/sharethis.js#property=5‌​8ff3bc2a9dabe0012b03‌​357&product=inline-s‌​hare-buttons' async='async'></script>";
}

【讨论】:

  • 难以置信。我发现我所有的博客文章都以 blog 开头。现在我只需要知道在哪里添加与旧代码一起添加的代码?我假设这一切都在 header.php 下,但是我如何确保您添加的代码仅适用于 ShareThis 代码而不是我所有的其他 javascript?它是: if (0 === strpos($_SERVER['REQUEST_URI'], '/blog')) { // 加载脚本 }
  • 要加载脚本,只需在if 语句中回显脚本标签 if (0 === strpos($_SERVER['REQUEST_URI'], '/blog')) { echo "";附注我编辑了我的原始答案
  • 你好。非常专业。我补充说: if (0 === strpos($_SERVER['REQUEST_URI'], '/blog')) { // 加载脚本 echo "";在我的 header.php 中,但是它不起作用。每当我打开网站时,它都会在我的页面顶部显示代码: if (0 === strpos($_SERVER['REQUEST_URI'], '/blog')) { // Load script echo ""; }
  • 啊,简单的问题。确保将代码包装在 php 标签中,如下所示:&lt;?php?&gt;
  • 泰!所以: "; } ?>
猜你喜欢
  • 2013-12-11
  • 2020-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多