Дополнительный текстовый редактор WordPress в записях

6
2263

Если по каким-то причинам, Вам нужно создать дополнительный текстовый редактор в записях WordPress, то здесь Вы узнаете как его добавить. Для создания дополнительного текстового редактора или WYSIWYG нам потребуется файл functions.php, который расположен в корневом каталоге Вашей темы. Весь процесс создания еще одного поля с редактором сводится к регистрации нового meta_box и инициализации javascript функции, а также настройки кнопки для добавления медиафайлов.

Определим константы с идентификаторами, чтобы в будущем было проще что-либо изменить, а также зарегистрируем дополнительное поле через функцию add_meta_box();.

Третий аргумент функции add_meta_box принимает функцию, которая отвечает за отображения ново-созданного дополнительного поля. Четвертый параметр определяет к какому идентификатору записи принадлежит данное дополнительное поле, если у Вас создан свой тип записи, то целесообразно изменить значение этого аргумента на свой.

Теперь давайте напишем функцию вывода редактора wysiwyg_render_meta_box :

Самыми главными строчками кода являются $content = get_post_meta($post->ID, WYSIWYG_META_KEY, true); и the_editor($content, $editor_id); — первая собирает контент, если он есть, вторая вызывает редактор с этим контентом, второй параметр указывает на идентификатор нужного нам редактора, так как их два. Остается дописать функцию сохранения.

На этом всё, ниже представлен весь получившийся код.

Вывод данных в шаблон

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

Как Вы могли заметить, вторым аргументом функция принимает идентификатор дополнительного поля, в нашем случае, это редактор.

Спасибо за внимание!

6 КОММЕНТАРИИ

    • Дописал как это сделать в конце статьи. Спасибо за вопрос!

    • Регистрируете новое мета-поле wysiwyg_register_meta_box()
      И так же создаете редактор, как указано выше.

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

    • День добрый! Была небольшая ошибка в строке:
      $mycontent = get_post_meta($post->ID, ‘my-editor’, true);
      Исправил, должно быть так:
      $mycontent = get_post_meta($post->ID, ‘extra-content’, true);
      Так как, константа с именем метаполя — WYSIWYG_META_KEY — имеет значение ‘extra-content’, а в функции get_post_meta вторым аргументом должно быть имя дополнительного поля.
      Спасибо за подсказку! Удачи!

ОСТАВЬТЕ ОТВЕТ

Пожалуйста оставьте комментарий!
Введите ваше имя