Изучаем возможности функции 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, и изучить его.