相对而不是页面中的绝对链接?
-
16-10-2019 - |
题
我有我的博客 blog.mydomain.com
. 。我正在使用页面来获取一些静态内容,这些内容需要从另一个子域中访问。所以 careers.mydomain.com
将显示WordPress的内容 blog.mydomain.com/careers
.
我的问题是页面上的所有链接仍然参考 blog.mydomain.com
. 。有没有办法要求WordPress使用相对链接?还是一种更改页面baseurl的方法?
解决方案
有一个过滤器, post_link
, ,该固定链接在从 get_permalink
在 wp-includes/link-template.php
. 。您可以使用该过滤器更改链接。
但是,请注意,将所有永久链接相对相对可能会在某些情况下产生意外后果,例如,您可能不需要相对链接 is_feed() == true
.
您可能会发现 post_link
过滤器不会捕获您需要更改的所有URL。在这种情况下,您可以尝试 home_url
过滤器具有更广泛的效果。
另一种可能性(我最喜欢的)是使用输出缓冲来相对化链接。 (在底部举例。)
为了安全起见,您只能在必要时更改链接。我不知道您如何将内容从实际博客获取到静态子域,但是如果您使用的是HTTP请求,则可以添加查询ARG: ?rlz
然后在您的主题/插件中查找。
if ( isset($_GET['rlz']) ) {
function my_ob_handler($HTML) {
return str_replace( home_url('/'), '/', $HTML );
}
ob_start( 'my_ob_handler' );
}