如何替换某些外部链接上的主机名?

时间:2016-05-24 作者:O. Jones

我需要替换某些外部链接上的主机名。例如,我想将出站链接替换为http://www.example.com/whatever 具有http://staging.example.com/whatever 整个我的网站。

这些链接遍布整个网站、内容、页眉、页脚、菜单等。

我一直在使用一个通用的页脚插件将以下Javascript插入到我网站的所有HTML页面中。

<script type="text/javascript">
  jQuery(document).ready(function () {
     jQuery("a[href^=\'http://www.example.com\']").each(function() { 
      this.href = this.href.replace (
           /^https:\\\\/\\\\/www\\.example\\.com/,
          \'http://staging.example.com\');       
     });
  });
</script>
这可以正常工作。但这是一个令人讨厌的黑客行为。

我的问题是:有没有更好的方法?有什么建议吗?

1 个回复
SO网友:BVRoc

如果链接来自主要内容区域,您可以创建一个钩子来处理此“内容”输出。在您的主题功能中。php文件,您可以尝试以下操作:

add_filter(\'the_content\', \'the_url_filter_function_name\', 30);
function the_url_filter_function_name($content) {
    return str_replace(\'bad-url.com\', \'good-url.com\', $content);
}
如果您要修改的URL是通过不同的机制存储和输出的,那么您可能能够找到它们的挂钩,这些挂钩也可以动态修改它们的内容。将其抽象到外部配置中是使用配置变量的另一个练习。

相关推荐

Permalinks for pages

为什么我不能为我的pages? 我有一个4层结构,家用解决方案机械钢所以我希望我的URL结构是www.domein.com/solutions/machines/steel 但我在哪里可以做到这一点??我在4层结构中进行了所有分类。但在permalinks编辑器中,我只能选择帖子或产品。。。我觉得奇怪,我不能对我的页面做同样的事情。。。我希望这是有意义的,有人可以帮助我,谢谢!