You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何阻止WordPress 5.7.1自动为标题标签添加HTML锚点

阻止WordPress 5.7.1自动为标题添加锚点的解决方案

针对你遇到的编辑器自动生成锚点与目录插件重复的问题,以下是无需升级WordPress的解决方法:

方法1:过滤标题块渲染结果,移除已生成的锚点

将以下代码添加到当前主题的functions.php文件(推荐使用子主题,避免主题更新丢失代码):

// 移除标题块自动生成的锚点ID及嵌套span
add_filter( 'render_block_core/heading', 'remove_core_heading_anchor', 10, 2 );
function remove_core_heading_anchor( $block_content, $block ) {
    // 移除标题标签的id属性
    $block_content = preg_replace( '/id="[^"]+"/', '', $block_content );
    // 移除包裹标题文本的带id的span标签
    $block_content = preg_replace( '/<span id="[^"]+">(.*?)<\/span>/', '$1', $block_content );
    return $block_content;
}

这段代码会在页面渲染时自动清理标题中的锚点ID和多余的span标签,彻底解决重复问题。

方法2:从根源禁用标题块的锚点支持

如果希望编辑器完全不生成锚点,可以禁用标题块的锚点功能,代码如下:

// 移除标题块的锚点设置支持
add_filter( 'block_type_metadata_settings', 'remove_heading_anchor_support', 10, 2 );
function remove_heading_anchor_support( $settings, $metadata ) {
    if ( $metadata['name'] === 'core/heading' ) {
        unset( $settings['supports']['anchor'] );
    }
    return $settings;
}

添加后,编辑器中的标题块将不再有锚点设置选项,也不会自动生成任何锚点ID。

注意事项

  • 若使用自定义插件存放代码,需确保插件处于激活状态;
  • 修改functions.php前建议备份文件,避免语法错误导致网站无法访问;
  • 两种方法任选其一即可,根据你的需求选择:方法1保留编辑器设置但清理输出,方法2直接禁用锚点功能。

内容的提问来源于stack exchange,提问作者Wanderlust Consulting

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 12:29:56