Изучаем возможности функции wp_editor на небольшом примере
Как мы все уже с вами знаем, в WordPress есть WYSIWYG-редактор TinyMCE, при помощи которого можно создавать новые записи и страницы. Выглядит он в своей привычной ипостаси вот так:
Несколько громоздкий, но новичкам, не слишком разбирающимся в дебрях HTML, вполне подойдет. Публиковать через него записи, в которых гора картинок – настоящая пытка, поэтому я редко им пользуюсь (точнее сказать: никогда). Однако сейчас разговор будет идти не о самом редакторе TinyMCE, а о небольшой, но очень удобной функции wp_editor. Если говорить в двух словах, то эта функция позволяет менять практически все, что касается редактора. Ее вполне можно использовать в темах и плагинах. С ее помощью можно выводить сразу несколько редакторов на отдельной странице, используя переменные $content и $editor_id.
Чтобы сразу объяснить все основные возможности этой функции, приведу небольшой пример кода. Здесь переменные $content и $editor_id являются обязательными, они должны быть заданы в любом случае. Переменная $settings – это массив, в котором можно включать/отключать различные возможности редактора TinyMCE (что мы, собственно, и сделаем).
Пример:
/**
* Обязательные переменные
*/
wp_editor( $content, $editor_id );
/**
* Базовый синтаксис функции
*/
wp_editor( $content, $editor_id, $settings = array() );
/**
* 1.
* Первая переменная устанавливает контент, который будет отображаться в поле редактора
* Вторая переменная хранит в себе значение HTML-атрибута ID для редактора
* (ID следует набирать строчными буквами без всяких подчеркиваний и дефисов).
*/
wp_editor( 'Здарова!', 'ourmaineditor' );
/**
* 2.
* Этот код отвечает за представление поля редактора и кнопки Submit (Отправить).
* Поле будет состоять из 15 строк, загружать разные quicktags не будем.
* Использовать будем конфигурацию PressThis.
*/
$args = array(
'textarea_rows' => 15,
'teeny' => true,
'quicktags' => false
);
wp_editor( 'Это стандартный текст', 'editor', $args );
submit_button( 'Сохранить контент' );
/**
* 3.
* Мы можем создать редактор с открытой в нем записью при помощи функции get_post,
* которая получает существующую запись (в данном случае под номером 117)
* из базы данных.
*/
$post = get_post( 117, 'OBJECT' );
wp_editor( $post, 'editor' );
/**
* 4.
* Ставим произвольные кнопки для редактора.
* Ниже приведен список, где каждая из возможностей отделена запятой
* например, link, unlink, bold и т.д.
*/
$settings = array(
'textarea_name' => 'content',
'media_buttons' => false,
'tinymce' => array(
'theme_advanced_buttons1' => 'formatselect,|,bold,italic,underline,|,' .
'bullist,blockquote,|,justifyleft,justifycenter' .
',justifyright,justifyfull,|,link,unlink,|' .
',spellchecker,wp_fullscreen,wp_adv'
)
);
wp_editor( '', 'content', $settings );
Функционал стандартного редактора можно настроить так, чтобы он отвечал всем требованиям и нуждам тех, кто публикует записи. Лишние кнопки вполне можно удалить при желании. Получить сведения по поводу всех возможностей можно, изучив соответствующую страницу кодекса WordPress. Если вы хотите углубиться в этот вопрос, можете открыть на досуге файл class-wp-editor.php, который находится в папке wp-includes, и изучить его.
