WordPress能否创建预加载不可删除Gutenberg块的页面、文章或自定义文章类型
WordPress Gutenberg 预定义固定块布局实现方案
完全支持该需求,WordPress原生提供了对应的功能,不需要额外安装第三方插件即可实现,以下是两种常用的实现方式:
方法1:全局给指定文章类型绑定预定义模板(推荐)
该方案适合需要给某类文章、页面、自定义文章类型统一预设固定块结构的场景,所有新建的对应类型内容都会自动加载预设块,且预设块不可删除,用户可自由添加其他块。
- 将以下代码添加到当前主题的
functions.php文件,或者自定义功能插件中即可生效,示例是给自定义文章类型product(产品)绑定模板,你可以根据需求修改为post(文章)、page(页面)或者你自己的自定义文章类型别名:
function custom_post_type_fixed_template() { // 获取目标文章类型的配置对象 $target_post_type = get_post_type_object( 'product' ); // 定义预定义块结构,可根据你的需求增减调整块类型、参数 $target_post_type->template = array( // 示例1:固定封面图块,不可删除、可移动位置 array( 'core/cover', array( 'lock' => array( 'remove' => true, 'move' => false ), 'align' => 'full' ) ), // 示例2:固定一级标题块,不可删除 array( 'core/heading', array( 'lock' => array( 'remove' => true ), 'placeholder' => '请输入主标题', 'level' => 1 ) ), // 示例3:固定参数表格块,不可删除 array( 'core/table', array( 'lock' => array( 'remove' => true ), 'caption' => '基础参数表' ) ) ); // 设为false允许用户添加其他自定义块,设为true会完全锁定模板不允许新增/移除任何块 $target_post_type->template_lock = false; } add_action( 'init', 'custom_post_type_fixed_template' );
- 核心参数说明:
- 单个块的
lock属性中设置remove: true即可实现该块不可被删除,如果同时要禁止移动位置,再加move: true即可 - 全局的
template_lock设为false即可保留用户新增其他块的权限,符合需求
- 单个块的
方法2:单篇内容单独设置固定块
如果不需要全局统一配置,仅需要给某几篇特定的页面、文章设置固定不可删除的块,直接在Gutenberg编辑器中操作即可:
- 选中你要设置为不可删除的块,点击块工具栏最右侧的三个点打开更多操作菜单
- 选择「锁定」选项,在弹出的配置面板中勾选「禁止删除」,点击确认即可
- 其他用户编辑该内容时,无法删除该锁定块,但可以正常编辑块内的内容,也可以自由新增其他块
小提示:如果需要限制只有管理员可以调整块的锁定状态,可以额外添加权限过滤代码,避免普通编辑者修改固定块的锁定配置。
内容的提问来源于stack exchange,提问作者iamrobertsillo
相关产品推荐
相关产品推荐

