开启should_load_separate_core_block_assets时register_block_style报错咨询
问题根因
- 自定义注册的样式句柄
core/heading与WordPress核心heading区块的默认样式句柄重名,核心内部针对核心句柄的资源加载钩子预设了双参数回调,重名后调用自定义注册的句柄时会触发参数不匹配错误 - 单独加载核心区块资产模式下,块样式注册逻辑需绑定到正确的执行钩子,不能直接在全局作用域执行
修复方案
修改样式句柄名避免与核心冲突,同时将注册逻辑绑定到init钩子,代码如下:
// 启用单独加载核心区块资产 add_filter( 'should_load_separate_core_block_assets', '__return_true' ); add_action( 'init', function() { // 注册自定义样式,句柄不可与核心预设句柄重名 wp_register_style( 'custom-core-heading-default', plugin_dir_url( __FILE__ ) . 'build/core/heading/style.css', array() ); register_block_style( 'core/heading', array( 'name' => 'heading-default', 'label' => 'Default', 'style_handle' => 'custom-core-heading-default', 'is_default' => true, ) ); } );
功能适配说明
register_block_style已完成should_load_separate_core_block_assets特性适配,无需等待后续开发:
- 修改句柄后参数计数错误会直接消失
- 自定义块样式CSS会自动遵循按需加载规则:仅页面存在应用了该样式的heading区块时加载对应资源,未应用时不会加载
- 若设置为默认样式,所有未指定其他样式的heading区块都会自动应用该样式,对应CSS会在页面存在heading区块时自动加载
内容的提问来源于stack exchange,提问作者Bailey Duncan
相关产品推荐
相关产品推荐

