# Как вернуться к классическому редактору WordPress (оригинальному редактору) – Полное отключение редактора Гутенберг
В версии WordPress 5.0 был представлен долгожданный новый редактор контента — "блочный редактор", также известный как Гутенберг. Он полностью изменил страницу редактирования постов и принцип написания контента. На некоторых сайтах такие радикальные изменения могут нарушить существующий функционал, поэтому необходимо отключить этот редактор.
В этой статье мы разберем, как вернуться к старому классическому редактору WordPress. Это можно сделать либо внося изменения в код, либо с помощью плагинов, которые позволяют настроить, где именно отключить новый блочный редактор.
## Как полностью отключить редактор Гутенберг (через код)
Для отключения редактора можно использовать хук use_block_editor_for_post_type
.
Вставьте следующий код в файл вашей темы functions.php
:
<?php
/***
* Отключает Гутенберг (новый блочный редактор в WordPress).
*
* @version 2.0
*/
did_action( 'plugins_loaded' )
? Kama_Disable_Gutenberg::init()
: add_action( 'plugins_loaded', [ Kama_Disable_Gutenberg::class, 'init' ] );
final class Kama_Disable_Gutenberg {
public static function init() {
add_filter( 'use_block_editor_for_post_type', '__return_false', 100 );
// отключает глобальные стили
remove_action( 'wp_enqueue_scripts', 'wp_enqueue_global_styles' );
remove_action( 'wp_footer', 'wp_enqueue_global_styles', 1 );
remove_theme_support( 'core-block-patterns' ); // WP 5.5
// отключает базовые стили для блоков
remove_action( 'wp_enqueue_scripts', 'wp_common_block_scripts_and_styles' );
// предотвращает ненужные операции
remove_filter( 'the_content', 'do_blocks', 9 );
remove_filter( 'widget_block_content', 'do_blocks', 9 );
add_action( 'admin_init', [ __CLASS__, 'on_admin_init' ] );
self::remove_gutenberg_hooks();
}
public static function on_admin_init(){
// Перемещает уведомление о Политике конфиденциальности обратно под поле заголовка.
remove_action( 'admin_notices', [ WP_Privacy_Policy_Content::class, 'notice' ] );
add_action( 'edit_form_after_title', [ WP_Privacy_Policy_Content::class, 'notice' ] );
}
private static function remove_gutenberg_hooks( $remove = 'all' ) {
remove_action( 'admin_menu', 'gutenberg_menu' );
remove_action( 'admin_init', 'gutenberg_redirect_demo' );
if ( $remove !== 'all' ) {
return;
}
remove_action( 'wp_enqueue_scripts', 'gutenberg_register_scripts_and_styles' );
remove_action( 'admin_enqueue_scripts', 'gutenberg_register_scripts_and_styles' );
remove_action( 'admin_notices', 'gutenberg_wordpress_version_notice' );
remove_action( 'rest_api_init', 'gutenberg_register_rest_widget_updater_routes' );
remove_action( 'admin_print_styles', 'gutenberg_block_editor_admin_print_styles' );
remove_action( 'admin_print_scripts', 'gutenberg_block_editor_admin_print_scripts' );
remove_action( 'admin_print_footer_scripts', 'gutenberg_block_editor_admin_print_footer_scripts' );
remove_action( 'admin_footer', 'gutenberg_block_editor_admin_footer' );
remove_action( 'admin_enqueue_scripts', 'gutenberg_widgets_init' );
remove_action( 'admin_notices', 'gutenberg_build_files_notice' );
remove_filter( 'load_script_translation_file', 'gutenberg_override_translation_file' );
remove_filter( 'block_editor_settings', 'gutenberg_extend_block_editor_styles' );
remove_filter( 'default_content', 'gutenberg_default_demo_content' );
remove_filter( 'default_title', 'gutenberg_default_demo_title' );
remove_filter( 'block_editor_settings', 'gutenberg_legacy_widget_settings' );
remove_filter( 'rest_request_after_callbacks', 'gutenberg_filter_oembed_result' );
remove_action( 'rest_api_init', 'gutenberg_register_rest_routes' );
remove_action( 'rest_api_init', 'gutenberg_add_taxonomy_visibility_field' );
remove_filter( 'registered_post_type', 'gutenberg_register_post_prepare_functions' );
remove_action( 'do_meta_boxes', 'gutenberg_meta_box_save' );
remove_action( 'submitpost_box', 'gutenberg_intercept_meta_box_render' );
remove_action( 'submitpage_box', 'gutenberg_intercept_meta_box_render' );
remove_action( 'edit_page_form', 'gutenberg_intercept_meta_box_render' );
remove_action( 'edit_form_advanced', 'gutenberg_intercept_meta_box_render' );
remove_filter( 'redirect_post_location', 'gutenberg_meta_box_save_redirect' );
remove_filter( 'filter_gutenberg_meta_boxes', 'gutenberg_filter_meta_boxes' );
remove_filter( 'body_class', 'gutenberg_add_responsive_body_class' );
remove_filter( 'admin_url', 'gutenberg_modify_add_new_button_url' ); // старая
remove_action( 'admin_enqueue_scripts', 'gutenberg_check_if_classic_needs_warning_about_blocks' );
remove_filter( 'register_post_type_args', 'gutenberg_filter_post_type_labels' );
}
}
[/sourcecode]
Чтобы включить/выключить Гутенберг для определенного поста, можно использовать хук <code>use_block_editor_for_post</code>.
Также блочный редактор можно отключить через метабокс, указав параметр <code>__block_editor_compatible_meta_box = false</code> при регистрации метабокса. Подробнее смотрите в описании <code>add_meta_box()</code>.
## Как отключить Гутенберг для пользовательских типов записей (WordPress)
Есть ситуации, когда для пользовательского типа записи нужен простой интерфейс без блочного редактора. В этом случае необходимо отключить редактор Гутенберг для пользовательского типа записи.
Пример ниже показывает, как отключить Гутенберг для определенных типов записей, оставляя его доступным для всех остальных.
### Отключает Гутенберг для пользовательских типов записей
[sourcecode language="php"]
add_filter( 'use_block_editor_for_post_type', 'my_disable_gutenberg', 10, 2 );
function my_disable_gutenberg( $current_status, $post_type ) {
$disabled_post_types = [ 'book', 'movie' ];
return ! in_array( $post_type, $disabled_post_types, true );
}
Этот ��од можно использовать в файле functions.php
или в плагине.
## Отключение Гутенберга (через плагин Disable Gutenberg)
Плагин "Disable Gutenberg" является альтернативой плагину Classic Editor. Его разработал разработчик с 15-летним опытом работы с WordPress.
## Отключение Гутенберга (через плагин Classic Editor)
Плагин "Classic Editor" отключает блочный редактор Гутенберг.
Если вам нужно оставить возможность использовать Гутенберг на сайте (например, редактировать некоторые статьи в новом редакторе и другие в классическом), то полное отключение Гутенберга не является хорошим вариантом. В этом случае разработчики WordPress рекомендуют установить плагин "Classic Editor".
После установки и активации плагина перейдите на страницу настроек: **Настройки > Письмо** и выберите, какой редактор будет использоваться по умолчанию, а также разрешите/запретите возможность выбора редактора для пользователей.
### Кратко о возможностях плагина
- Администраторы могут выбрать редактор по умолчанию для всех пользователей.
- Администраторы могут разрешить пользователям изменять свой редактор по умолчанию.
- Когда выбор редактора разрешен, пользователи могут выбирать, какой редактор использовать для каждого поста.
- Каждый пост открывается в последнем используемом редакторе, независимо от того, кто его редактировал.
Принцип работы плагина основан на хуке use_block_editor_for_post_type
.