如何在 WordPress 编辑器中禁用特定标题级别

用 levelOptions 设置可选标题级别

从 WordPress 6.7 开始,带有标题级别下拉菜单的 WordPress 核心区块支持 levelOptions 属性。这适用于标题、站点标题、站点副标题、查询标题、文章标题和评论标题区块。levelOptions 接受一个由数字组成的数组,数字对应标题级别:1 表示 H1,2 表示 H2,以此类推。

该属性让你指定下拉菜单界面中应显示哪些标题级别,提供了一种轻量的编辑选项约束方式,无需引入区块弃用处理。已有标题级别会保留在标记中,levelOptions 只影响界面显示。

对非管理员隐藏 H1、H5 和 H6

下面的代码为除拥有 edit_theme_options 权限的用户(通常是管理员)之外的所有用户,禁用标题区块中的 H1、H5 和 H6 选项。这有助于防止内容创作者无意间添加多个 H1 元素,或使用原本不打算让他们使用的特定标题级别。

<?php

function devblog_modify_heading_levels_globally( $args, $block_type ) {

    // Check if the current user is an Administrator.
    $is_administrator = current_user_can( 'edit_theme_options' );

    // Only proceed if the current block is a Heading and the user is not an Administrator.
    if ( 'core/heading' !== $block_type || $is_administrator ) {
        return $args;
    }

    // Disable H1, H5, and H6.
    $args['attributes']['levelOptions']['default'] = [ 2, 3, 4 ];

    return $args;
}
add_filter( 'register_block_type_args', 'devblog_modify_heading_levels_globally', 10, 2 );

可以将这段代码添加到主题的 functions.php 文件或自定义插件中。应用之后,编辑器中的最终效果如下。

标题级别选项调整前后的 WordPress 编辑器对照截图
标题级别选项调整前后对照(原文截图)。

感谢 @areziaal 和 @bph 审阅这段代码并提供反馈。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容