Wordpress主题找不到CSS(localhost)

poo*_*y21 3 css html5 wordpress-theming bitnami

我正在使用http://html5blank.com上的Wordpress主题,当我将它上传到我的服务器在线时效果很好,但是当我在本地使用Wordpress Bitnami Stack时,主题无法找到css.在header.php中你有:

<!-- css + javascript -->
<?php wp_head(); ?>
Run Code Online (Sandbox Code Playgroud)

但是当我在localhost中查看dev站点的源代码(激活主题后)时,我发现hrefcss是空的:

<!-- css + javascript -->
<link rel='stylesheet' id='normalize-css'  href='' media='all' />
<link rel='stylesheet' id='html5blank-css'  href='' media='all' />
Run Code Online (Sandbox Code Playgroud)

同时它确实找到了图像和图标:

<!-- icons -->
<link href="http://localhost:8080/wordpress/wp-content/themes/html5blank-master/img/icons/favicon.ico" rel="shortcut icon">
<link href="http://localhost:8080/wordpress/wp-content/themes/html5blank-master/img/icons/touch.png" rel="apple-touch-icon-precomposed">
Run Code Online (Sandbox Code Playgroud)

我的操作系统是Ubuntu 12.10.这可能是Bitnami问题,或者这是我能解决的问题所以我可以在本地网站上工作吗?请注意,默认主题"twentytwelve"在我的设置中正常工作.

更新:我在我的Bitnami Wordpress堆栈中比较并尝试了html5blank主题的1.2.9和1.4.0版本(当前版本).就functions.php版本wp_register_style()而言,两个版本的文件都是相同的,但版本1.2.9填写了到css的链接,而版本1.4.0则将它们留空.另请注意,1.4.0在Windows 7上的Bitnami安装中运行良好.

Mat*_*son 5

问题是主题设计中的某些代码与运行在非标准端口号上的WordPress之间的交互.

我跟踪了向wp_kses_bad_protocolWordPress 函数报告的esc_url函数(由样式编组器使用,WP_Styles该类使用wp-includes/class.wp-styles.php)样式表URL的协议无效.esc_url是否有防止顽皮的东西成为URL; 其中一项检查是查看是否存在类似javascript:协议的可疑内容http:,例如.

一个问题的虚假检测似乎已被html5blank主题添加过滤器功能引起html5blank_protocol_relative的过滤器style_loader_src.这似乎并不像一个坏的事情,一般(相对协议基本上意味着更换http://whatever...//whatever...,避免了混合HTTPS和HTTP在同一页上的问题-的"相对协议" URL //whatever会使用https或http适当. )

但是,当您在特定端口号上运行WordPress时,这似乎会混淆不良协议检测.

简而言之:你可能想向主题的开发者报告这个问题,让他知道因为这个原因,他在非标准端口上运行WordPress时会破坏主题,即使用URL http://localhost:8080/wordpress而不是http://localhost/wordpress.

在短期内,我只是评论这些线:

add_filter('script_loader_src', 'html5blank_protocol_relative'); // Protocol relative URLs for enqueued scripts
add_filter('style_loader_src' , 'html5blank_protocol_relative'); // Protocol relative URLs for enqueued styles
Run Code Online (Sandbox Code Playgroud)

......在主题中functions.php; 这应该关闭协议相对URL过滤,你的主题应该在本地工作.除非您的实时网站使用https,否则它们仍然可以正常使用此更改,即使它们使用https,您也不会比使用大多数主题更糟糕.