WP 5 как добавить стиль редактора для tinyMCE и Gutenberg

Вопрос или проблема

До блоков Гутенберга мы добавляли стили редактора, используя

add_editor_style( array( 'path/to/editor-style.css', 'whatever.css' ) );

Теперь у нас есть редактор Гутенберга, ч stylesheet также загружается с помощью той же функции.

Что если мы хотим сохранить стили для обоих? Я спрашиваю, потому что есть плагины, которые позволяют пользователям отключать Гутенберг. Очевидно, что невозможно сделать что-то вроде:

 add_editor_style( array( 'editor-style-mce.css', 'editor-style-gutenberg.css' ) );

Чтобы сделать все более сложным для разработчиков, есть возможность использовать классический редактор как блок Гутенберга.
Похоже, нам нужно проверять доступность Гутенберга в действии after_setup_theme и загружать соответствующий стиль редактора, но мы не можем сделать много, когда классический редактор используется как блок Гутенберга.

Есть ли кто-нибудь, кто может предложить какое-то решение?

Вам нужно вызвать add_theme_support( 'editor-styles' ) в хуке after_setup_theme.

Дополнительная информация

Ответ или решение

Когда речь идет о добавлении стилей редактора для обоих редакторов WordPress — TinyMCE и Gutenberg — необходимо учитывать несколько особенностей платформы. В этой статье мы подробно разберем, как корректно внедрить стили, чтобы они были доступны как в классовом редакторе, так и в Gutenberg, обеспечив совместимость и адаптивность.

1. Использование add_theme_support('editor-styles')

Первый шаг — это активировать поддержку стилей редактора для вашей темы. Это можно сделать, добавив следующий код в файл functions.php вашей темы:

function theme_setup() {
    add_theme_support('editor-styles');
}
add_action('after_setup_theme', 'theme_setup');

Этот код активирует возможность добавления стилей в редактор.

2. Регистрация стилей

Чтобы добавить разные стили для TinyMCE и Gutenberg, используйте функцию add_editor_style(). Введите следующее:

function my_custom_editor_styles() {
    // Подключение стилей для Gutenberg
    if (has_block_editor()) {
        add_theme_support('editor-styles');
        add_editor_style('path/to/editor-style-gutenberg.css');
    } else {
        // Подключение стилей для классического редактора
        add_editor_style('path/to/editor-style-mce.css');
    }
}
add_action('enqueue_block_editor_assets', 'my_custom_editor_styles');

3. Условия для выбора стилей

Как было упомянуто, необходимо учитывать ситуацию, когда классический редактор используется как блок Gutenberg. Это может создать некоторые сложности, но можно использовать is_admin() и дополнительные условия для более точного контроля. Вот обновленный вариант кода:

function my_custom_editor_styles() {
    // Проверяем, используется ли Gutenberg
    if (is_admin() && isset($_GET['editor'])) {
        // Если это Gutenberg редактор
        add_editor_style('path/to/editor-style-gutenberg.css');
    } else {
        // Если это классический редактор
        add_editor_style('path/to/editor-style-mce.css');
    }
}
add_action('enqueue_block_editor_assets', 'my_custom_editor_styles');
add_action('admin_init', 'my_custom_editor_styles');

4. Дополнительные рекомендации

  • Кэширование: После внесения изменений в стили следует очищать кэш, чтобы избежать проблем с загрузкой устаревших данных.
  • Тестирование на совместимость: Убедитесь, что ваши стили корректно отображаются как в классическом редакторе, так и в Gutenberg. Используйте разные браузеры и устройства для проверки.
  • Использование плагинов: Если у вас есть возможность использования плагина, который отключает Gutenberg, убедитесь, что пользователи смогут выбрать желаемый способ редактирования и ваши стили корректно применяются в обоих случаях.

Заключение

Интеграция стилей редактора для обоих редакторов может быть сложной задачей, однако, следуя вышеописанным шагам, вы сможете обеспечить правильное отображение ваших стилей в TinyMCE и Gutenberg. Этот подход даст вам возможность адаптировать вашу тему под пользователей с разными предпочтениями, сохраняя эстетику и функциональность.

Оцените материал
Добавить комментарий

Капча загружается...