如何检测古登堡的使用情况

时间:2018-11-30 作者:KAGG Design

名为Gutenberg的新编辑器在4.9中是插件,在5.0中是名为Block editor的核心功能。关于它,通常需要以编程方式确定使用哪个编辑器在站点控制台中编辑文章或页面。怎么做?

Update: 类似问题有很多过时的答案:

2 个回复
最合适的回答,由SO网友:KAGG Design 整理而成

有几种变体:

WordPress 4.9,Gutenberg插件处于非活动状态,Gutenberg插件处于活动状态,WordPress 5.0,默认情况下块编辑器处于活动状态,经典编辑器插件处于活动状态,但在site console的“Settings”>“Writing”中,选择了“Use the Block editor by default…”选项,所有提到的变体都可以通过以下代码处理:

/**
 * 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;如果存在classic editor,则函数返回false。此功能只能在plugins_loaded 操作已启动。

P、 经典编辑器插件1.2版即将在美国发布,代码更新如下classic-editor-replace 选项现在接受值而不是replaceno-replace, 但是classicblock.

SO网友:Marc

您可以使用

add_action( \'enqueue_block_editor_assets\', \'your_function_name\' );
只有在使用Gutenberg编辑内容时才会触发。

相关推荐