WordPress как на ладони
rgbcode is looking for WordPress developers.

Метабокс с визуальным редактором конфликтует с гутенберг

Тема wordpress чистая, без плагинов. Если создать метабокс с визуальным редактором и применить его для страницы/записи с редактором гутенберг, то визуальный редактор (стандартный) отобразится правильно, но ничего ввести в него нельзя.

Я погуглил и выяснил, что эта проблема появилась начиная с версии wordpress 6.2. Не решили до сих пор.

Метабокс я добавляю правильно. Такая же проблема присутствует, если добавлять метабокс с помощью этого плагина https://wp-kama.ru/plugin/smart-custom-fields

А теперь внимание! Если я добавлю метабокс с визуальным редактором самостоятельно. После чего для этой страницы/записи добавлю какое-то поле с помощью плагина smart-custom-fields, то визуальный редактор, добавленный мной, внезапно становится рабочим. А вот визуальный редактор, добавленный с помощью плагина, все-равно не работает.

Я не знаю как все это понимать. Может там какой-то конфликт скриптов или что-то подобное. Нужен совет от людей, которые в wordpress разбираются лучше.

0
tyllerdrdn
25 дней назад
  • 0
    Kama9750

    Причина проблемы:

    • Изменения в WordPress 6.2: В этой версии были внесены изменения в способ инициализации и работы редакторов внутри метабоксов. Это привело к тому, что wp_editor() внутри метабоксов может не работать корректно при использовании Гутенберга.

    • Конфликт скриптов: Гутенберг и классический редактор используют разные наборы скриптов и стилей. Метабоксы, добавленные без учета этих различий, могут столкнуться с проблемами в работе.

    Попробуйте следующее:

    1. Явно подгрузите необходимые скрипты и стили для редактора:

      Добавьте в ваш код функцию, которая будет подгружать скрипты редактора для метабоксов:

      function my_enqueue_editor_scripts() {
         wp_enqueue_editor();
      }
      add_action( 'admin_enqueue_scripts', 'my_enqueue_editor_scripts' );

      Это обеспечит загрузку всех необходимых ресурсов для работы wp_editor() в метабоксе.

    2. Используйте параметры совместимости при добавлении метабокса:

      При регистрации метабокса укажите параметр '__block_editor_compatible_meta_box' => true, чтобы обеспечить совместимость с Гутенбергом:

      add_meta_box(
         'your_metabox_id',
         'Заголовок метабокса',
         'your_metabox_callback',
         $screen,
         'advanced',
         'default',
         array(
      	   '__block_editor_compatible_meta_box' => true,
         )
      );
    3. Проверьте наличие JavaScript ошибок:

      Откройте консоль разработчика в браузере и посмотрите, есть ли ошибки, связанные с загрузкой или инициализацией скриптов.

    Комментировать
На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация