Изучаем возможности функции wp_editor на небольшом примере

Дата публикации:Ноябрь 4, 2012

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

Поделиться

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Получать новые комментарии по электронной почте. Вы можете подписаться без комментирования.