Функция wp_editor()
в WordPress предназначена для вывода визуального редактора контента с использованием библиотеки TinyMCE. Она автоматически подключает все необходимые компоненты и обеспечивает удобный интерфейс для редактирования текста. В этой статье мы рассмотрим, как использовать wp_editor()
и приведем примеры его применения.
Примечание: После инициализации редактора TinyMCE его нельзя безопасно перемещать в DOM. Поэтому вызов wp_editor()
внутри метабокса может привести к проблемам, если используется только Quicktags.
wp_editor( string $content, string $editor_id, array $settings = array() )
- $content (string) — обязательный параметр, который содержит начальное содержимое для редактора.
- $editor_id (string) — обязательный параметр, который задает HTML-идентификатор для текстовой области и TinyMCE.
- $settings (array) — необязательный параметр, который позволяет указать дополнительные настройки для редактора.
Аргументы параметра $settings
Функция wp_editor()
принимает массив $settings
, позволяющий настроить отображение редактора. Вот некоторые из доступных аргументов:
wpautop
(логический): Применять функциюwpautop()
. По умолчанию:1
.media_buttons
(логический): Показывать кнопку для вставки/загрузки медиа. По умолчанию:1
.textarea_name
(строка): Значение атрибутаname
для текстовой области. По умолчанию:$editor_id
.textarea_rows
(число): Количество строк у поля формы. Высота текстового поля. По умолчанию:get_option('default_post_edit_rows', 10)
.tabindex
(число): Значение атрибутаtabindex
для текстовой области. По умолчанию:0
.editor_css
(строка): Дополнительные CSS стили для редактора, размещаемые в теге<style>
. По умолчанию:''
.editor_class
(строка): Дополнительные CSS классы для текстовой области. По умолчанию:''
.teeny
(логический): Показать урезанный редактор или полный. В урезанном будут скрыты кнопки дополнительной панели. По умолчанию:0
.dfw
(логический): Заменить полноэкранный режим по умолчанию на DFW. По умолчанию:0
.tinymce
(логический/массив): Загружать визуальный редактор TinyMCE или нет. Можно указать параметры редактора напрямую в массиве.quicktags
(логический/массив): Загружать HTML-редактор или нет. Можно указать параметры напрямую в массиве.drag_drop_upload
(логический): Включает поддержку Drag-and-Drop для загрузки файлов (с версии WordPress 3.9). По умолчанию:false
.
Возвращаемое значение
Функция не возвращает значение, а выводит HTML-код для редактора непосредственно на экран.
Пример 1: Простое использование на страницах сайта
Чтобы вывести поле ввода текста с редактором TinyMCE на странице сайта, используйте следующий код:
<?php
wp_editor('', 'my_custom_editor', array('textarea_name' => 'content'));
?>
Пример 2: Заполнение редактора содержимым поста
Вы можете заполнить редактор содержимым конкретного поста. В следующем примере мы получаем контент поста с ID 42:
$post_id = 42;
$post = get_post($post_id, OBJECT, 'edit');
$content = $post->post_content;
$editor_id = 'post_editor';
wp_editor($content, $editor_id);
Пример 3: Изменение настроек редактора
Если вам нужно изменить настройки редактора, например, убрать кнопку для добавления медиафайлов, вы можете сделать это следующим образом:
$settings = array('media_buttons' => false);
wp_editor('', 'my_editor_with_no_media', $settings);
Пример 4: Использование через AJAX
Если вам нужно вывести редактор в ответ на AJAX-запрос, вы можете использовать следующую структуру:
add_action('wp_ajax_my_ajax_request', 'my_ajax_request_handler');
function my_ajax_request_handler() {
$html = '';
$html .= get_wp_editor('Default content', 'ajax_editor', array());
echo $html;
wp_die(); // завершение AJAX запроса
}
function get_wp_editor($content = '', $editor_id, $options = array()) {
ob_start();
wp_editor($content, $editor_id, $options);
$temp = ob_get_clean();
$temp .= _WP_Editors::enqueue_scripts();
$temp .= print_footer_scripts();
$temp .= _WP_Editors::editor_js();
return $temp;
}
Пример 5: Кастомизация панели инструментов
Для изменения набора кнопок на панели инструментов можно использовать следующий код:
$args = array(
'tinymce' => array(
'toolbar1' => 'bold,italic,underline,separator,link,unlink',
'toolbar2' => '',
),
);
wp_editor('', 'custom_toolbar_editor', $args);
Заключение
Функция wp_editor()
предоставляет мощный инструмент для интеграции редактора контента в ваши темы и плагины WordPress. Она позволяет легко настраивать интерфейс редактирования и улучшать взаимодействие с пользователем. Не забудьте изучить доступные параметры и настройки для более детальной кастомизации редактора под ваши нужды.