场景:
这个问题与Wordpress主题在本地环境中的开发有关,通过
MAMP.
为了通过以下方式启用移动设备测试:xip.io, 我已经修改了我的本地Wordpresswp-config.php
文件包含以下内容:
require_once(\'b5f-browsers.php\');
if( b5f_browser_check(\'mobile\')) {
define(\'WP_HOME\',\'http://mysite.dev.\'.$_SERVER[\'SERVER_ADDR\'].\'.xip.io\');
define(\'WP_SITEURL\',\'http://mysite.dev.\'.$_SERVER[\'SERVER_ADDR\'].\'.xip.io\');
}
注:此解决方案的积分为
brasofilo 在里面
this related post.
问题:我的自定义主题的HTML头和脚块包含使用标准bloginfo(\'template_url\')
作用在主机上浏览时,此功能正常工作。
但在移动设备上,主要的站点基础域定义如下;设置(>);“template\\u url”中使用常规,而不是中指定的条件重写wp-config.php
上面的文件。
所以我得到这样的台词:
<link rel="stylesheet" href="http://mysite.dev/wp-content/themes/mytheme/style.css">
而不是这样:
<link rel="stylesheet" href="http://mysite.dev.HOST-IP-ADDRESS.xip.io/wp-content/themes/mytheme/style.css">
解决方法:有趣的是,我注意到
bloginfo(\'wpurl\')
返回正确的
xip.io 移动设备的URL和其他核心Wordpress功能,如
bloginfo(\'rss_url\')
遵守URL覆盖。但是
bloginfo(\'template_url\')
只是似乎不想这么做。
因此,作为一种解决方法,我使用bloginfo(\'wpurl\')
然后将完整路径添加到主题目录:
<link rel="stylesheet" href="<?php bloginfo(\'wpurl\'); ?>/wp-content/themes/mytheme/style.css">
但这似乎不是正确的方式。。。
问题是:有没有更好/正确的方法来处理这个问题?
最合适的回答,由SO网友:mKc 整理而成
找到解决方案。。。问题是由于在wp-config.php
文件
需要在require_once(ABSPATH . \'wp-settings.php\');
默认配置文件底部附近的行,否则常量已定义,无法重新定义。
所以最后一节wp-config.php
文件现在如下所示:
...
/** Add xip.io support for mobile theme testing **/
require_once(\'b5f-browsers.php\');
if( b5f_browser_check(\'mobile\')) {
define(\'WP_HOME\',\'http://mysite.dev.\'.$_SERVER[\'SERVER_ADDR\'].\'.xip.io\');
define(\'WP_SITEURL\',\'http://mysite.dev.\'.$_SERVER[\'SERVER_ADDR\'].\'.xip.io\');
}
/* That\'s all, stop editing! Happy blogging. */
/** Absolute path to the WordPress directory. */
if ( !defined(\'ABSPATH\') )
define(\'ABSPATH\', dirname(__FILE__) . \'/\');
/** Sets up WordPress vars and included files. */
require_once(ABSPATH . \'wp-settings.php\');