我在做一个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子模块更新附带的默认模块)工作正常。
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\' );