wp_editor() — добавляет поле с редактором

Функция возвращает текстовое поле с прикрученными к нему TinyMCE (визуальный) и Quicktags (HTML) редакторами, также добавляет свой JavaScript через функцию wp_footer, если используется на страницах сайта (т.е. не в админке).

Имеется возможность загрузки файлов.

wp_editor( $content, $editor_id, $settings = array() )
$content
(строка) содержимое текстового поля, то есть какой-то текст или HTML-код, который нужно засунуть в редактор по умолчанию
$editor_id
(строка) HTML-атрибут id текстового поля textarea, может содержать только буквы в нижнем регистре
$setting
(массив) настройки редактора

wpautop
(логическое) нужно ли использовать функцию wpautop() для добавления параграфов
По умолчанию: true
media_buttons
(логическое) нужно ли вставить кнопку «Добавить медиафайл» над редактором:

кнопка добавления медиафайла в редакторе

Кнопка появляется только в том случае, если у текущего пользователя имеются права на загрузку файлов!
По умолчанию: true

textarea_name
(строка) HTML-атрибут name текстового поля, можно использовать с [] для передачи параметров в виде массива
По умолчанию: $editor_id
textarea_rows
(целое число) значение HTML-атрибута rows текстового поля
По умолчанию: get_option('default_post_edit_rows', 10)
tabindex
(целое число) значение HTML-атрибута tabindex
editor_css
(строка) дополнительные CSS-стили, которые нужно применить к редактору, должны быть заключены в тег <style>, поддерживается атрибут scope
editor_class
(строка) дополнительные классы для <textarea>
teeny
(логическое) нужно ли вывести только минимальную конфигурацию редактора без возможности отображения дополнительной панели
По умолчанию: false
dfw
(логическое) нужно ли заменить обычный вариант полноэкранного отображения на вариант, используемый в админке (DFW)
По умолчанию: false
tinymce
(массив) нужно ли задействовать визуальный редактор TinyMCE, также позволяет передавать настройки непосредственно в TinyMCE через массив
По умолчанию: true
quicktags
(массив) нужно ли задействовать вкладку HTML-редактора Quicktags, также позволяет передавать настройки непосредственно в Quicktags через массив
По умолчанию: true

Добавление второго редактора на страницу редактирования поста

В оригинальной документации WordPress не советуют добавлять редактор в перемещаемый метабокс в админке, однако я добавлял, все было ок… и тем не менее вот альтернативное рекомендуемое решение:

/*
 * функция добавления редактора
 */
function true_double_editor() {
	global $post;
	echo '<h2>Описание</h2>'; // заголовок ко второму редактору
	wp_editor( get_post_meta($post->ID, '_true_editor_data', true), 'trueeditor' );
}
 
add_action( 'edit_form_advanced', 'true_double_editor' );
add_action( 'edit_page_form', 'true_double_editor' );
 
/*
 * функция сохранения данных
 */
function true_save_double_editor($post_id){
	update_post_meta($post_id, '_true_editor_data', $_POST['trueeditor']);
}
 
add_action('save_post', 'true_save_double_editor');

Пример использования редактора

Самое главное — если используете редактор непосредственно в теме (например в форме комментирования), убедитесь, что добавили функцию wp_footer() где-нибудь перед закрывающим тегом </body>, иначе редактор появится, но не будет работать. Я даже в примере хотел это показать, но потом передумал.

$settings = array(
	'textarea_name'	=>	'true_content',
	'editor_class'	=>	'my_redactor commons', // несколько классов через пробел
	'dfw'		=>	true,
	'quicktags'	=>	false
);
wp_editor( '', 'truewpeditor', $settings );

Комментарии 19

  • Миша4 апреля 2014 в 06:04 #

    Если добавить второй редактор на страницу редактирования поста, то после того как ставится галочка прилепить запись, информация из этого редактора стирается, не поможете решить? Плз)

  • Евгений31 мая 2015 в 14:05 #

    Здравствуйте, можете подсказать в чем может быть проблема.
    Добавляю редактор к уже имеющемуся на странице textarea, при редактировании в редакторе вставляется тег , но при сохранении пропадает. При этом остальные теги остаются.

    При сохранении в админке, тег сохраняется как надо, а на странице сайта - пропадает.
    Мой код редактора?

    $args1 = array(
    'wpautop' => 1
    , 'media_buttons' => 1
    , 'textarea_name' => 'field' //id textarea
    , 'textarea_rows' => 20
    , 'tabindex' => null
    , 'editor_css' => ''
    , 'editor_class' => ''
    , 'teeny' => 0
    , 'dfw' => 0
    , 'tinymce' => 1
    , 'quicktags' => 1
    	            );
    wp_editor('', 'field', $args1);
  • Слава30 июня 2015 в 15:06 #

    Здравствуйте!
    Спасибо за пост, очень выручает, как весь ресурс в общем-то ))
    Тут у меня штука такая. Мне нужно знать, какая функция выведет мне кнопку "Просмотреть" ?
    У меня есть страничка, где "Авторы" могут постить свои статьи, хотелось бы что они имели возможность предпросмотра. Не подскажите куда капать?

    • Миша1 июля 2015 в 08:07 #

      Добрый день!
      Честно говоря не приходилось сталкиваться с подобной задачей.. )

  • Миша24 июля 2015 в 17:07 #

    Добрый день!
    Не давно работаю с WP, решил добавить второй редактор в пост,
    все работает отлично, но вопрос, как мне вывести информацию с этого
    редактора в шаблон сайта?
    Заранее спасибо за ответ!

  • Руслан Галло28 августа 2015 в 13:08 #

    Привет, Миша.
    Такая проблема: во втором редакторе не работает абзац. То есть в редакторе абзацы есть, но на странице они не отображаются. Нет тегов .
    Как это можно решить? Спасибо.

  • Руслан Галло28 августа 2015 в 13:08 #

    Нет тегов <p>.

    • Евгений28 августа 2015 в 17:08 #

      Скорее всего при выводе ваш контент обрабатывается фукцией которая очищает теги

      • Руслан Галло28 августа 2015 в 21:08 #

        Другие теги она не убирает.
        Решение: при выводе или при сохранении пропустить через функцию wpautop().

  • Dima22 сентября 2015 в 08:09 #

    Как вывесте данные из этой редактора?

  • Dima22 сентября 2015 в 08:09 #

    который создали

  • bmite2 октября 2015 в 17:10 #

    добавил как написано, но:
    1. нет кнопки опубликовать
    2. не работают кнопки (добавить медиафайл, визуально, текст).
    подскажите, как исправить?

    • Миша3 октября 2015 в 09:10 #

      Куда вставили?

    • Миша5 октября 2015 в 07:10 #

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

      Ответ на ваш вопрос: вы возможно просто не до конца понял принцип работы этой функции. По сути это текстовое поле ввода <textarea> — оно и не должно добавлять кнопок. Просто используйте эту функцию, как часть HTML формы.

Оставить комментарий / вопрос

phpjsHTMLCSSSQLПросто код
  Для того, чтобы оставить комментарий, пожалуйста, зарегистрируйтесь или авторизуйтесь на сайте.
Получайте новости блога по email или следите за мной в социальных сетях.
  • Миша: Добрый день! В принципе вам только немного нужно доработать код из этого поста - категории уже есть, цена - это и так...

  • eveniy: Добрый день Михаил, подскажите на примере как добавить свои произвольные поля в в вашу форму фильтрации: Я так понимаю...

  • Миша: Отлично! )

  • Дмитрий: сам разобрался: в настройках кастомного типа записи недавно оптимизировал настройки и переоптимизировал: в аргументе 'ta...

  • Дмитрий: У меня по какой-то причине пропало отображение (как в колонке меню слева, так и метабокс в записях ) раздела рубрик для...