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

Владислав Белецкий
Владислав Белецкий .
Категория:
Комментариев: 0

Функция возвращает текстовое поле с прикрученными к нему 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
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

Кнопка появляется только в том случае, если у текущего пользователя имеются права на загрузку файлов!
По умолчанию: 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 );
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии