KAGG Design Asked:2020-11-22 20:43:44 +0800 CST2020-11-22 20:43:44 +0800 CST 2020-11-22 20:43:44 +0800 CST 如何抓住古腾堡 772 随着 Gutenberg 编辑器(在 WordPress 5.0 中被称为块编辑器)的发布,经常会出现一个问题 - 如何以编程方式确定当前正在使用哪个编辑器来编辑站点控制台中的帖子? wordpress 1 个回答 Voted Best Answer KAGG Design 2020-11-22T20:43:44+08:002020-11-22T20:43:44+08:00 这里可能有几个选项: WordPress 4.9,古腾堡插件未激活 WordPress 4.9,古腾堡插件激活 WordPress 5.0,默认启用块编辑器 WordPress 5.0,经典编辑器插件激活 WordPress 5.0,经典编辑器插件处于活动状态,但在“设置 > 编写”下的控制台中,选择了“使用默认块编辑器...”选项。 上述所有选项都可以通过以下代码处理: /** * Check if Block Editor is active. * Must only be used after plugins_loaded action is fired. * * @return bool */ function is_active() { // Gutenberg plugin is installed and activated. $gutenberg = ! ( false === has_filter( 'replace_editor', 'gutenberg_init' ) ); // Block editor since 5.0. $block_editor = version_compare( $GLOBALS['wp_version'], '5.0-beta', '>' ); if ( ! $gutenberg && ! $block_editor ) { return false; } if ( is_classic_editor_plugin_active() ) { $editor_option = get_option( 'classic-editor-replace' ); $block_editor_active = array( 'no-replace', 'block' ); return in_array( $editor_option, $block_editor_active, true ); } return true; } /** * Check if Classic Editor plugin is active. * * @return bool */ function is_classic_editor_plugin_active() { if ( ! function_exists( 'is_plugin_active' ) ) { include_once ABSPATH . 'wp-admin/includes/plugin.php'; } if ( is_plugin_active( 'classic-editor/classic-editor.php' ) ) { return true; } return false; } 如果块编辑器以一种或另一种方式启用,则代码返回 true,或者在经典编辑器的情况下返回 false。必须在 plugins_loaded 事件触发之前调用此函数。 PS 随着经典编辑器插件 1.2 版的发布,代码必须更新,因为该选项classic-editor-replace现在接受的值不是replaceand no-replace,而是classicand block。
这里可能有几个选项:
上述所有选项都可以通过以下代码处理:
如果块编辑器以一种或另一种方式启用,则代码返回 true,或者在经典编辑器的情况下返回 false。必须在 plugins_loaded 事件触发之前调用此函数。
PS 随着经典编辑器插件 1.2 版的发布,代码必须更新,因为该选项
classic-editor-replace
现在接受的值不是replace
andno-replace
,而是classic
andblock
。