我正在使用Wordpress,但这个问题可能适用于其他PHP驱动的模板系统。
我希望有一个css文件(即critical.css),其中包含重要全局元素的所有样式。首屏内容(例如排版,标题包括,导航,网站范围的横幅/英雄),与我的模块化内容,页面特定的样式&页脚样式。然后,我想获取此文件的内容,并在文档标题标记正下方的样式标记之间打印。
目标是提高折叠率以上的渲染速度。我注意到,当这些样式被优先处理(以及任何重置)时,对上层内容的呈现有一定的改进,即使这些改进比经验更具体验性。
但是......我无法弄清楚如何将此文档中的内联样式“打印”到wp_head中。
我已经探索过wp_add_inline_style,但这似乎并没有提供我需要的功能。看来你必须在一个函数中定义那些样式,这绝对不是我要追求的。
我正在尝试避免使用PHP包含(即将关键样式.php文件中的PHP标记之间的所有内容转储,然后在wp_head中调用它),以支持更清洁或可以通过functions.php实现的内容。或Wordpress的本机钩子。现在所有人都强调了Pagespeed优化,我很惊讶这里没有在Wordpress环境中提出这个问题。我们非常感谢您对此有所帮助或对您有所帮助的方法。
答案 0 :(得分:3)
您只需include
header.php 中的实际CSS文件:
<style>
<?php include 'path/to/critical.css'; ?>
</style>
PHP的include()
函数并不要求包含的文件也必须是PHP。
或者,如果你想把事情放在 functions.php 中,你可以做一个file_get_contents()
并挂钩wp_head
动作钩子:
function hook_critical_css() {
$critical_css = file_get_contents( 'path/to/critical.css' );
echo '<style>' . $critical_css . '</style>';
}
add_action('wp_head','hook_critical_css');