劫持根目录相对路径的home_url

时间:2012-06-23 作者:orionrush

我一直很难将完整的域名写入链接和资产路径。基本上本地主机:XXXX工作正常,直到我尝试从XP的虚拟机箱安装或在本地网络中访问我的站点,其中域更改为computername。本地:XXXX

我设法用来自的提示解决了这个问题http://www.deluxeblogtips.com/2012/06/relative-urls.html (以下代码)

问题是,在整个主题中引用的home\\u url仍然返回完整的域,而不是作为根目录返回“/”。有没有办法过滤home\\u url来完成此操作?是的,我可以define(\'WP_HOME\', \'/\' ); 这将强制执行路径,但会导致feed读取器和插件出现其他问题-它也可能不适用于子目录安装。

谢谢你的想法

add_action( \'template_redirect\', \'rw_relative_urls\' );
    function rw_relative_urls() {
    // Don\'t do anything if:
    // - In feed
    // - In sitemap by WordPress SEO plugin
   if ( is_feed() || get_query_var( \'sitemap\' ) )
     return;
    $filters = array(
    \'post_link\',
    \'post_type_link\',
    \'page_link\',
    \'attachment_link\',
    \'get_shortlink\',
    \'post_type_archive_link\',
    \'get_pagenum_link\',
    \'get_comments_pagenum_link\',
    \'term_link\',
    \'search_link\',
    \'day_link\',
    \'month_link\',
    \'year_link\',
     );
     foreach ( $filters as $filter )
{
    add_filter( $filter, \'wp_make_link_relative\' );
}
    home_url($path = \'\', $scheme = null);
}

2 个回复
SO网友:chrisguitarguy

您需要在中设置WP\\u HOME和WP\\u SITEURLwp-config.php 以更聪明的方式。像这样:

<?php
define(\'WP_HOME\', \'http://\' . $_SERVER[\'HTTP_HOST\']);
// add the next line if you have a subdirectory install
define(\'WP_SITEURL\', WP_HOME . \'/path/to/wordpress\');
这将解决站点URL的问题,因为它们将根据主机名进行动态设置。这是正确的方法--这是我在几乎所有WP安装上都做的事情,甚至in the codex. 相信我,you don\'t really want relative urls.

SO网友:Milo

home_url 呼叫get_home_url 哪个有过滤器home_url:

return apply_filters( \'home_url\', $url, $path, $orig_scheme, $blog_id );
请参见/wp-includes/link-template.php

结束

相关推荐

Encoding Method for URLs?

WordPress是否有一种编码URL的方法或API,类似于在URL中使用标题时生成部分URL的方式?我正在编写一个生成URL的插件,并希望使用与其他所有插件相同的方法。例如,我在标题中键入“这是我的博客文章”,然后生成“这是我的博客文章”。