我有我的博客blog.mydomain.com
. 我正在使用一些静态内容的页面,这些内容需要从另一个子域访问。所以careers.mydomain.com
将显示来自的WordPress内容blog.mydomain.com/careers
.
我的问题是页面上的所有链接仍然引用blog.mydomain.com
. 有没有办法让WordPress使用相对链接?还是更改页面的baseURL的方法?
我有我的博客blog.mydomain.com
. 我正在使用一些静态内容的页面,这些内容需要从另一个子域访问。所以careers.mydomain.com
将显示来自的WordPress内容blog.mydomain.com/careers
.
我的问题是页面上的所有链接仍然引用blog.mydomain.com
. 有没有办法让WordPress使用相对链接?还是更改页面的baseURL的方法?
有一个过滤器,post_link
, permalinks在从get_permalink
在里面wp-includes/link-template.php
. 您可以使用该过滤器更改链接。
但是,请注意,在某些上下文中,将所有永久链接设置为相对可能会产生意外的后果,例如,当is_feed() == true
.
您可能会发现post_link
筛选器无法捕获您需要更改的所有URL。在这种情况下,您可以尝试home_url
具有更广泛效果的过滤器。
另一种可能性(我最喜欢)是使用输出缓冲来相对化链接。(底部示例。)
为了安全起见,您只能在必要时更改链接。我不知道您是如何将内容从实际博客获取到静态子域的,但如果您使用HTTP请求,可以添加查询参数:?rlz
然后在你的主题/插件中寻找它。
if ( isset($_GET[\'rlz\']) ) {
function my_ob_handler($HTML) {
return str_replace( home_url(\'/\'), \'/\', $HTML );
}
ob_start( \'my_ob_handler\' );
}
$page1 = get_option(\'home_page_field\'); $page2 = get_option(\'home_page_field1\'); $page3 = get_option(\'home_page_field2\'); $page4 = get_option(\'home_page_field3\'); $arrData = array( $page1, $page2 , $page3 ); 其给出的o/p