wp_editor() WP 3.3.0

Виводить на екран поле форми textarea зі стандартним візуальним та HTML редактором WP (TinyMCE). Можна використовувати в шаблоні на сторінках типу: запис, постійна сторінка і т.д.

Які параметри може приймати JS об’єкт wp.editor.initialize , читайте у питанні .

Примітка: поле textarea заповнюється введеним у візуальний редактор контентом при сабмиті форми, яку обернуть редактор. Якщо потрібно отримати введений контент до сабміта, наприклад, при AJAX запиті, то доведеться робити це в JS вручну, через глобальну змінну tinyMCE.

Отримаємо контент без обробки, як є – з тегами і т.д.

let content = window.tinyMCE.get('editor_id').getContent()
// Контент у цьому випадку буде отриманий з усіма HTML тегами:
// <p>Контент написаний для <strong>тесту</strong></p>

Якщо потрібно отримати контент з обробкою, такою, якою він зазвичай виходить, то викличте спочатку подію tinyMCE.triggerSave() , а потім візьміть значення поля textarea:

window.tinyMCE.triggerSave()
let content = jQuery('#editor_id').val()
// Контент у цьому випадку буде оброблений - буде видалено непотрібні HTML теги:
// Контент написаний для <strong>тесту</strong>

Незважаючи на те, що кнопка з комбінаціями клавіш, які можна використовувати візуальному редактору TyniMCE знаходиться на увазі, мало хто знає ці комбінації. А ще менше за тих, хто їх використовує. Погляньте на можливі комбінації, напевно, там є щось корисне для вас:

Комбінації клавіш у візуальному редакторі WordPress

Хуків немає.

Повертає

null. Виводить на екран HTML код форми.

Шаблон використання

wp_editor( 'content', 'editorid', array(
	'wpautop' => 1,
	'media_buttons' => 1,
	'textarea_name' => '', // потрібно вказувати!
	'textarea_rows' => 20,
	'tabindex' => null,
	'editor_css' => '',
	'editor_class' => '',
	'teeny' => 0,
	'dfw' => 0,
	'tinymce' => 1,
	'quicktags' => 1,
	'drag_drop_upload' => false
)));

Використання

wp_editor( $content, $editor_id, $settings = array() );
$content
(рядок) (обов’язковий)
Заздалегідь встановлений текст у полі форми.
$editor_id
(рядок) (обов’язковий)

Ідентифікатор для полів Textarea і TinyMCE.

ВАЖЛИВО! Може містити лише літери в нижньому регістрі [a-z]. Тире (-), підкреслення (_) використовувати не можна, наприклад: editpost, mycustomeditor.

$settings
(масив)
Масив аргументів (див. нижче).


За замовчуванням: попереднє встановлення

Аргументи параметра $settings

wpautop
(логічний)
1 – застосовувати функцію
wpautop() .


За замовчуванням: 1
media_buttons
(логічний)
Показувати медіа кнопку (вставка/завантаження).


За замовчуванням: 1
textarea_name
(рядок)
значення атрибута name у полі textarea.


За замовчуванням $editor_id
textarea_rows
(число)
Кількість рядків біля поля форми. Висота поля введення тексту. За промовчанням береться значення їх налаштувань адмін-панелі.


За замовчуванням: get_option(‘default_post_edit_rows’, 10)
tabindex
(число)
Значення атрибуту tabindex у полі текстової області.


За замовчуванням: 0
editor_css
(рядок)
Додаткові стилі CSS для редактора. Потрібно вказувати у тезі
<style>. Вказаний тут текст буде розташований прямо перед формою.


За замовчуванням: ”
editor_class
(рядок)
Додаткові CSS класи до текстового поля.


За замовчуванням: ”
teeny
(логічний)
Показати урізаний редактор або повний. У урізаному будуть приховані кнопки додаткової другої панелі. А також для нього працюватимуть спеціальні фільтри та події. 1 – приховає кнопку.
dfw
(логічний)
Замінити повноекранний режим за замовчуванням на DFW (потрібні спеціальні DOM елементи та CSS).
tinymce
(логічний/масив)

Завантажувати візуальний редактор TinyMCE чи ні. Можна вказати параметри редактора безпосередньо в масиві array(). Можливі елементи масиву: із файлу: /wp-includes/class-wp-editor.php :

$set['tinymce']['wp_autoresize_on']

// далі
$mceInit = array (
	'selector' => "#$editor_id",
	'resize' => 'vertical',
	'menubar' => false,
	'wpautop' => (bool) $set['wpautop'],
	'indent' =>! $set['wpautop'],
	'toolbar1' => implode( ',', $mce_buttons ),
	'toolbar2' => implode( ',', $mce_buttons_2 ),
	'toolbar3' => implode( ',', $mce_buttons_3 ),
	'toolbar4' => implode( ',', $mce_buttons_4 ),
	'tabfocus_elements' => $set['tabfocus_elements'],
	'body_class' => $body_class
);

// Merge with first part of the init array
$mceInit = array_merge( self::$first_init, $mceInit );

if ( is_array( $set['tinymce'] ) )
$mceInit = array_merge( $mceInit, $set['tinymce'] );

// де $mce_buttons виглядає так
$mce_buttons = [
	'formatselect', 'bold', 'italic', 'strikethrough', 'bullist', 'numlist', 'blockquote', 'hr',
	'alignleft', 'aligncenter', 'alignright', 'link', 'unlink', 'wp_more', 'spellchecker'
];
// та додаткові кнопки в масиві:
'fullscreen', 'wp_adv'

// А так виглядає друга панель кнопок
$mce_buttons_2 = [
	'strikethrough', 'hr', 'forecolor', 'pastetext', 'removeformat',
	'charmap', 'outdent', 'indent', 'undo', 'redo', 'wp_help'
];

Також можна змінити набір кнопок через фільтри. Ось всі фільтри, які відповідають за набір кнопок:

// Якщо встановлено опцію teeny (урізаний)
$mce_teeny = [
	'bold', 'italic', 'underline', 'blockquote', 'strikethrough', 'bullist', 'numlist',
	'alignleft', 'aligncenter', 'alignright', 'undo', 'redo', 'link', 'unlink', 'fullscreen'
];
$mce_buttons = apply_filters( 'teeny_mce_buttons', $mce_teeny, $editor_id );

// Якщо повний редактор
$mce_buttons = apply_filters( 'mce_buttons', $mce_buttons, $editor_id );
$mce_buttons_2 = apply_filters( 'mce_buttons_2', $mce_buttons_2, $editor_id );
$mce_buttons_3 = apply_filters( 'mce_buttons_3', array(), $editor_id );
$mce_buttons_4 = apply_filters( 'mce_buttons_4', array(), $editor_id );

За замовчуванням: 1

quicktags
(логічний/масив)

Завантажувати HTML редактор чи ні. Можна вказати параметри безпосередньо в масиві array(). Можливі елементи масиву:

array(
'id' => $editor_id,
'buttons' => 'strong,em,link,block,del,ins,img,ul,ol,li,code,more,close,fullscreen'
);

За замовчуванням: 1

drag_drop_upload
(логічний)
Включає підтримку Drag-and-Drop під час завантаження файлів (з версії WordPress 3.9)


За замовчуванням: false

Приклади

0

#1 TinyMCE на сторінках сайту

Виведемо поле введення тексту з редактором TinyMCE та HTML редактором, десь на сторінках сайту. Для цього вставимо наступний код шаблону, в те місце де потрібно вивести таке поле:

<?php wp_editor( '', 'wpeditor', array('textarea_name' => 'content') ); ?>
0

#2 Заповнимо поле контентом посту 51:

$post_id = 51;
$post = get_post($post_id, OBJECT, 'edit');

$content = $post->post_content;
$editor_id = 'editpost';

wp_editor($content, $editor_id);
0

#3 Зміна налаштувань форми

Ми також може змінити настройки форми, що виводиться, якщо базові нас не влаштовують. Наприклад, ми можемо прибрати кнопку додавання медіафайлів:

$settings = array( 'media_buttons' => false );

wp_editor($content, $editor_id, $settings);

нотатки

список змін

З версії 3.3.0Введено.

Код wp_editor() WP 6.0.2

function wp_editor( $content, $editor_id, $settings = array() ) {
	if ( ! class_exists( '_WP_Editors', false ) ) {
		require ABSPATH. WPINC. '/class-wp-editor.php';
	}
	_WP_Editors::editor( $content, $editor_id, $settings );
}

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *