Wrong path for theme assets

时间:2014-11-04 作者:zok

我在做一个WordPress项目,从Mark Jaquith开始WordPress-Skeleton 存储库,使用MAMP。

我克隆了repo,更新了WordPress子模块,创建了一个数据库,并更新了local-config.php 文件

到目前为止,一切似乎都很好,但当我尝试使用不同的主题时/content/themes), 所有主题的资产都得到了错误的路径(因此站点呈现时没有图像、CSS和JS)。例如:

在源代码中,样式表链接指向:

http://localhost/content/themes/roots/assets/css/main.min.css

应在何时:

http://localhost/lab/Wordpress-Skeleton/content/themes/roots/assets/css/main.min.css

我的主题中所有资产的路径都错误(我放入的任何主题/content/themes)

例如,在源代码中,样式表链接指向:

http://localhost/content/themes/roots/assets/css/main.min.css

应在何时:

http://localhost/lab/Wordpress-Skeleton/content/themes/roots/assets/css/main.min.css

调试时,我发现全局$wp\\u theme\\u目录返回一个包含两条路径的数组,这两条路径都是正确的:

.../htdocs/lab/WordPress-Skeleton/wp/wp-content/themes .../htdocs/lab/WordPress-Skeleton/content/themes

但是,功能get_theme_root_uri() 从调用时functions.php 位于$wp_theme_directories 数组,返回:

http://localhost/content/themes

文件夹中的主题/wp/wp-content/themes (WP子模块更新附带的默认模块)工作正常。

1 个回复
SO网友:zok

原来问题出在WP_CONTENT_URL, 在wp配置中定义。php:

define( \'WP_CONTENT_URL\', \'http://\' . $_SERVER[\'HTTP_HOST\'] . \'/lab/WordPress-Skeleton/content\' );
看来$_SERVER[\'HTTP_HOST\'] 正在返回不完整的路径(仅localhost 没有文件夹)。

因为我使用的是版本控制和本地配置。为了定义一些本地dev变量(如数据库凭据),我还将以下内容放在上面:

define( \'WP_CONTENT_URL\', \'http://\' . $_SERVER[\'HTTP_HOST\'] . \'/lab/WordPress-Skeleton/content\' );
和wp配置。php我添加了此检查:

if ( !defined( \'WP_CONTENT_URL\' ) )
    define( \'WP_CONTENT_URL\', \'http://\' . $_SERVER[\'HTTP_HOST\'] . \'/content\' );

结束

相关推荐

Plugin Paths Issue

我正在使用一个插件,它有几个实例,它使用硬编码路径,而不是使用WP函数来查找路径。这里的问题是,它引用的是wp内容,但我已经更改了wp配置文件中的wp\\u content\\u FOLDERNAME设置(过去有这样做的要求)。无论如何,有没有一种方法可以在不更新插件代码库本身的情况下实现这一点(即允许它在将来进行升级)。我想这与扩展插件而不必编辑代码库的整个想法是一致的。