从 wordpress 中删除 TinyMCE 皮肤

Remove TinyMCE skin from wordpress

我一直在寻找一种方法来完全删除应用于 Wordpress 中的 TinyMCE 编辑器的 TinyMCE 皮肤。我正在使用自定义插件来设置后端样式。

目前我正在使用 !important 标记到 css 以强制我的样式通过 - eg .mce-window-head {background: blue !important;} 这并不理想。

我曾尝试在使用 add_action 挂钩时调整优先级,但也没有帮助。

如有任何指导,我们将不胜感激。

您需要像这样 deregister 编辑器按钮样式表:

add_action( 'admin_enqueue_scripts', 'so_32482665_remove_editor_buttons_css' );

function so_32482665_remove_editor_buttons_css() {
    wp_deregister_style( 'editor-buttons' );
}

Dequeuing 将不起作用,因为 WordPress 不会以正常方式将样式表排入队列,它会直接使用 wp_print_styles().

打印出来

尽管如此,您仍然可以使用默认的 TinyMCE 皮肤,它看起来像是在 JavaScript 中添加的,因此似乎没有办法通过操作或过滤器将其删除。虽然这不是最佳实践,但使用 admin_footer 钩子将 link 输出到您的样式表意味着它将在默认皮肤之后加载并覆盖样式而无需使用 !important

add_action( 'admin_footer', 'so_32482665_output_custom_editor_css' );

function so_32482665_output_custom_editor_css() {
?>
<link rel="stylesheet" href="<?php echo get_template_directory_uri(); ?>/custom-editor.css" type="text/css" />
<?php
}

我可能会同时使用这两种方法,这样您就不会与来自多个样式表的特异性问题作斗争。