页面中的相对链接而不是绝对链接?

时间:2011-03-29 作者:mrtsherman

我有我的博客blog.mydomain.com. 我正在使用一些静态内容的页面,这些内容需要从另一个子域访问。所以careers.mydomain.com 将显示来自的WordPress内容blog.mydomain.com/careers.

我的问题是页面上的所有链接仍然引用blog.mydomain.com. 有没有办法让WordPress使用相对链接?还是更改页面的baseURL的方法?

1 个回复
最合适的回答,由SO网友:Andy 整理而成

有一个过滤器,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\' );
}

结束

相关推荐

如何在Get_Pages中获取数组中的页面ID?

$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