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

注销WordPress的wp-reset-editor-styles导致wp-block-directory异常如何解决

问题根因

你直接在admin_menu阶段注销wp-reset-editor-styles会触发错误,是因为该样式是多个后台编辑器内置样式的公共依赖项,此时WordPress已经完成了样式队列的初始化,直接删除依赖会导致load-styles.php的句柄拼接逻辑出错,就是你看到的URL参数乱码问题,CONCATENATE_SCRIPTS配置仅控制脚本拼接,对样式拼接逻辑无效。

最优解决方案:覆盖冲突样式(无依赖风险)

不需要注销原有样式,直接注入优先级更高的自定义规则覆盖revert属性即可,不会触发任何依赖相关的bug:

add_action( 'enqueue_block_editor_assets', function() {
    $custom_editor_css = "
    .editor-styles-wrapper p {
        /* 替换为你需要的实际属性值即可 */
        font-size: 16px;
        line-height: 1.7;
        margin: 0 0 1.2em 0;
    }
    /* 其他被revert影响的选择器可以直接往下加 */
    ";
    // 挂载到编辑器核心样式后输出,优先级更高
    wp_add_inline_style( 'wp-edit-blocks', $custom_editor_css );
}, 999 );

备选方案:完全移除目标样式(需先清理依赖)

如果你确实需要彻底删除wp-reset-editor-styles,要在样式初始化阶段先清理所有依赖关联再注销,避免队列错误:

add_action( 'wp_default_styles', function( $wp_styles ) {
    $target_handle = 'wp-reset-editor-styles';
    if ( !isset( $wp_styles->registered[$target_handle] ) ) {
        return;
    }
    // 遍历所有已注册样式,移除对目标样式的依赖
    foreach ( $wp_styles->registered as $handle => $style_item ) {
        if ( in_array( $target_handle, $style_item->deps, true ) ) {
            $wp_styles->registered[$handle]->deps = array_diff(
                $style_item->deps,
                [ $target_handle ]
            );
        }
    }
    // 依赖清理完成后再注销
    wp_deregister_style( $target_handle );
}, 11 );

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 12:45:05