【问题标题】:How can I avoid gutenberg blocks styles be written inline?如何避免内联编写古腾堡块样式?
【发布时间】:2022-12-31 09:10:02
【问题描述】:
我目前正在使用新的块注册方式,使用 block.json 文件。
我的问题是,如果我添加样式表,例如:
"style": [ "file:./overlapping-columns.css", "overlapping-columns-style" ],
在前端,样式将内联写入,而不是加载 overlapping-columns.css 文件。为什么?有没有办法让wordpress将它们作为文件加载?在文档上,它被写成它应该作为文件加载,并且是延迟加载的(仅当块显示在页面上时)。
【问题讨论】:
标签:
css
wordpress
performance
wordpress-gutenberg
gutenberg-blocks
【解决方案1】:
据我了解,条件加载在一定程度上取决于您使用的主题类型。
如果它是基于块的/FSE 主题,块 css 将默认有条件地加载(我已经以有限的方式测试过)。
如果它是一个经典主题(使用 php 模板),您将需要添加(听起来您已经添加)以下内容到您的主题中。
add_filter( 'should_load_separate_core_block_assets', '__return_true' );
该过滤器适用于整个安装,您无需将其添加到每个块。
默认情况下(在块主题中)和启用了 should_load_separate_core_block_assets 过滤器的经典主题,WordPress 还将内联块的 css,在 this blog post 中有更多描述
如果您希望将块 CSS 作为文件加载,请使用以下过滤器:
add_filter( 'styles_inline_size_limit', '__return_zero' );
(每个页面上都加载了其他 WordPress CSS))。