如何禁用某些帖子类型的古腾堡/块编辑器?

Hos*_*ein 2 php wordpress wp-editor wordpress-gutenberg

WordPress 在其第5版中添加了Gutenberg /块编辑器,默认情况下已启用Post和Page post类型。

默认情况下,可能会在不久的将来为所有自定义帖子类型启用此功能,因此作为WordPress开发人员,我想知道如何针对我自己的自定义帖子类型禁用此编辑器?我想保留我从插件或主题中注册的帖子类型的经典编辑器。

Hos*_*ein 11

可以使用WordPress过滤器简单地禁用编辑器。

WordPress 5及更高版本

如果只想对自己的帖子类型禁用块编辑器,则可以将以下代码添加到functions.php主题的插件或文件中。

add_filter('use_block_editor_for_post_type', 'prefix_disable_gutenberg', 10, 2);
function prefix_disable_gutenberg($current_status, $post_type)
{
    // Use your post type key instead of 'product'
    if ($post_type === 'product') return false;
    return $current_status;
}
Run Code Online (Sandbox Code Playgroud)

如果要完全禁用块编辑器(不建议),则可以使用以下代码。

add_filter('use_block_editor_for_post_type', '__return_false');
Run Code Online (Sandbox Code Playgroud)

古腾堡插件(WordPress 5之前)

如果只想对自己的帖子类型禁用古腾堡编辑器,则可以将以下代码添加到functions.php主题的插件或文件中。

add_filter('gutenberg_can_edit_post_type', 'prefix_disable_gutenberg', 10, 2);
function prefix_disable_gutenberg($current_status, $post_type)
{
    // Use your post type key instead of 'product'
    if ($post_type === 'product') return false;
    return $current_status;
}
Run Code Online (Sandbox Code Playgroud)

如果要完全禁用Gutenberg编辑器(不推荐),则可以使用以下代码。

add_filter('gutenberg_can_edit_post_type', '__return_false');
Run Code Online (Sandbox Code Playgroud)