3

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

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

但是当我在本地主机上查看开发站点的源代码时(激活主题后),我发现hrefcss 是空的:

<!-- 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 安装中运行良好。

4

3 回答 3

5

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

我将事情追踪到wp_kses_bad_protocol向 WordPress 的esc_url函数(由样式入队器使用,在 中的WP_Styleswp-includes/class.wp-styles.php)报告样式表 URL 的协议无效的函数。esc_url是否可以防止淘气的东西进入 URL;例如,其中一项检查是查看是否有任何可疑的协议,例如javascript:协议而不是。http:

一个问题的错误检测似乎是由于 html5blank 主题为过滤器添加了过滤功能造成html5blank_protocol_relativestyle_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

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

于 2013-04-15T21:20:25.050 回答
0

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

于 2013-04-15T18:34:53.620 回答
0

如果您使用的是来自 Elegant Themes 的 Divi 主题,您可能会遇到同样的问题,即您的设计工作结果无法反映您在视觉生成器中所做的设置。要在 localhost 上解决此问题,您只需安装 WP 文件管理器插件,转到 wp-content 并删除 et-cache 文件夹。而已!

于 2021-11-18T10:56:31.337 回答