如何将Gutenberg Group Block的「内部区块使用内容宽度」默认设为关闭
修改Core Group区块Layout属性默认值
要修改core/group区块layout属性的默认type值,你需要正确处理对象类型属性的默认值定义,而非使用之前尝试的错误语法。
正确实现代码
const { addFilter } = wp.hooks; const { assign, merge } = lodash; function filterGroupBlockLayoutDefault(settings, name) { if (name === 'core/group') { // 合并修改layout属性的默认值,保留原有属性配置 return merge({}, settings, { attributes: { layout: assign({}, settings.attributes.layout, { default: { type: 'default' } }) } }); } return settings; } addFilter( 'blocks.registerBlockType', 'custom/group-block/layout-default', filterGroupBlockLayoutDefault );
错误代码分析
你之前的尝试存在两处关键问题:
layout是object类型属性,它的default值应为对象格式,而非[{ type: 'default' }]这种数组写法- 直接覆盖
layout属性会丢失原有配置(比如allowedTypes等),必须用assign或merge进行增量修改,仅更新default值
代码说明
- 使用
lodash.merge深度合并区块设置,确保原有配置不被覆盖 - 针对
layout属性,用assign保留其原有类型定义,只修改default值为{ type: 'default' } - 此设置会将「内部区块使用内容宽度」的默认状态从开启(对应
constrain)改为关闭(对应default)
内容的提问来源于stack exchange,提问作者BenJonroc
相关产品推荐
相关产品推荐

