如何全局移除所有场景下的WYSIWYG编辑器(页面/文章/产品等)
全局移除所有内容类型WYSIWYG编辑器解决方案
原有代码失效原因
- 钩子触发时机早于WooCommerce产品等自定义文章类型的注册流程,无法匹配到尚未完成注册的文章类型
- 未适配WordPress 5.0+默认的古腾堡区块编辑器,仅移除经典编辑器的支持不会禁用区块编辑器
- 代码放置位置错误,比如放在了未激活主题的配置文件、未正确加载的自定义代码区域
可用实现代码
将以下代码添加到当前使用主题(或子主题)的functions.php文件末尾,保存后刷新后台即可生效:
// 全局禁用所有公开文章类型的编辑器 add_action('wp_loaded', 'remove_all_post_type_editors', 999); function remove_all_post_type_editors() { // 获取所有公开的文章类型,包含自带的文章、页面和自定义的产品等类型 $public_post_types = get_post_types(['public' => true], 'names'); foreach ($public_post_types as $post_type) { remove_post_type_support($post_type, 'editor'); } } // 适配WordPress 5.0+版本,全局禁用古腾堡区块编辑器 add_filter('use_block_editor_for_post_type', '__return_false', 999);
如果仅需要禁用文章、页面、产品三个指定类型的编辑器,可将函数内的遍历逻辑替换为原有代码的三行移除规则即可。
参考示意图

内容的提问来源于stack exchange,提问作者lveilleux
相关产品推荐
相关产品推荐

