我正在使用来自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安装中运行良好。
答案 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/