Wordpress主题找不到CSS(localhost)

时间:2013-04-15 17:55:11

标签: css html5 wordpress-theming bitnami

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

<!-- css + javascript -->
<?php wp_head(); ?>

但是当我在localhost上查看开发站点的来源(激活主题后)时,我发现css的href为空:

<!-- css + javascript -->
<link rel='stylesheet' id='normalize-css'  href='' media='all' />
<link rel='stylesheet' id='html5blank-css'  href='' media='all' />

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

<!-- 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">

我的操作系统是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安装中运行良好。

2 个答案:

答案 0 :(得分:5)

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

我跟踪了向函数wp_kses_bad_protocol报告的函数esc_url报告给WordPress的WP_Styles函数(由样式编组使用,wp-includes/class.wp-styles.php中的esc_url类)样式表网址无效。 javascript:可以防止顽皮的东西变成网址;其中一项检查是查看是否存在类似http:协议而非html5blank_protocol_relative的可疑内容,例如。

错误检测问题似乎是由html5blank主题为过滤器style_loader_src添加过滤器函数http://whatever...引起的。这似乎不是一件坏事,一般来说(protocol relative基本上意味着用//whatever...替换//whatever,这避免了在同一页面上混合https和http的问题 - “协议相对“http://localhost:8080/wordpress的URL将根据需要使用https或http。”

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

长话短说:你可能想向主题的开发者报告这个问题,让他知道因为这个原因,他在非标准端口上运行WordPress时会破坏主题,即使用{{1而不是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

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

答案 1 :(得分:0)

您需要查看functions.php - 您的主题可能使用enqueue作为将CSS传递给wp_head的方法。有关详细信息,请参阅本教程:http://wp.tutsplus.com/articles/how-to-include-javascript-and-css-in-your-wordpress-themes-and-plugins/