对某些页面ID禁用Gutenberg编辑器

问题描述

我需要在某些页面的编辑屏幕上禁用gutenberg编辑器。

我知道如何针对帖子类型(如所有页面)禁用它:

/************************************************************ */
/* disable Gutenberg for post type */

add_filter('use_block_editor_for_post_type','prefix_disable_gutenberg',10,2);
function prefix_disable_gutenberg($current_status,$post_type)
{
    if ( $post_type == 'page' ) return false;
    return $current_status;
}

但是我只想为页面禁用它,比方说ID为“ 1716”。

如何以编程方式为某些页面ID禁用gutenberg编辑器?

解决方法

可以使用use_block_editor_for_post钩子。

然后可以使用钩子以多种方式执行此操作,但这是一个示例;

用您要由经典编辑器编辑的post_id修改exclude_ids数组。(请记住$ post适用于所有帖子类型)

function disable_block_editor_for_page_ids( $use_block_editor,$post ) {

    $excluded_ids = array( 2374,5378,21091);
    if ( in_array( $post->ID,$excluded_ids ) ) {
        return false;
    }
    return $use_block_editor;
}
add_filter( 'use_block_editor_for_post','disable_block_editor_for_page_ids',10,2 );

请注意,您必须安装经典编辑器插件才能正常工作。