Для этой задачи есть специальный плагин, который называется HTML Editor Reloaded, он очень прост в эксплуатации, поэтому нет смысла описывать основные этапы работы с ним.
Однако, добавить пользовательские кнопки в редактор WordPress можно и не прибегая к сторонним плагинам. (Что, если надо написать собственный плагин с интеграцией в редактор?). Существует 2 способа, которыми это можно сделать. Суть сводится к вызове нужных функций из соответствующего скрипта, который уже подключён у WordPress и отвечает за загрузку этих кнопок. Чтобы вызвать эти функции, надо вставить свой код в админку WordPress. JavaScript можно подключить по разному, для наглядности в первом сделаем это через внешний файл, а во втором — через прямую вставку кода скрипта в HTML, но по сути не важно, как Вы интегрируете свой код.
В файл function.php добавим:
add_action(''admin_print_scripts'', ''my_custom_quicktags''); function my_custom_quicktags() { wp_enqueue_script(''my_custom_quicktags'', get_bloginfo(''template_url'') . ''/my-custom-quicktags.js'', array(''quicktags'')); }
Теперь в каталоге с нашей темой мы создадим js-код с именем «my-custom-quicktags.js» и следующим содержанием:
edButtons[edButtons.length] = new edButton( ''hello'', ''hello'', ''<hello>'', ''</hello>'');
Мы создали новую кнопку с помощью функции edButton, которая принимает такие параметры:
Как видите, всё довольно просто.
В тот же function.php добавим:
add_action(''admin_footer'', ''eg_quicktags''); function eg_quicktags() { ?> <script type="text/javascript" charset="utf-8"> jQuery(document).ready(function(){ if(typeof(QTags) !== ''undefined'') { QTags.addButton( ''phpcode'', ''phpcode'', ''[phpcode]\n'', ''\n[/phpcode]''); QTags.addButton( ''quotation-marks'', ''«...»'', ''«'', ''»'',''que-marks-key'',''Кавычки'', 15); } }); </script> <?php }
Здесь мы с помощью библиотеки jQuery дожидаемся загрузки документа, затем вызываем метод addButton объекта QTags. На входе те же самые параметры, что и в предыдущем способе, только по желанию можно добавить ещё 3 параметра: access key (атрибут «accesskey», зачем нужен — не знаю), отображаемая подсказка при наведении (атрибут «title») и позиция на панели.
Обратите внимание, что в теги кнопки «phpcode» я добавил символы новой строки для того, чтобы при обрамлении нужного мне текста сам текст переносился на новую строку.
Вторая кнопка — это кнопка быстрый русских кавычек, ведь можно использовать не только html- и short-коды, а и любые другие строки.