Появилось тут у меня желание «поковырять» WordPress (на нём собственно и работает этот сайт). И первое, что пришло в голову – это написать простейший плагин. Погуглив немного наткнулся на видеуроки Морковина. По мотивам этих уроков и родилась эта запись. В ней я попытаюсь пошагово изложить ход написания.
Итак, плагин будет при получении контента любой страницы добавлять к нему надпись.
Все испытания провожу на Denwer’е.
В каталоге plugins создаём пустой файл для будущего плагина.
Что внутри файла?
- Заголовок с описанием.
1 2 3 4 5 6 7 8 9 10
<?php /* Plugin Name: Название плагина Plugin URI: http://страница_с_описанием_плагина_и_его_обновлений Description: Краткое описание плагина. Version: Номер версии плагина, например: 1.0 Author: Имя автора плагина Author URI: http://страница_автора_плагина */ ?>
<?php /* Plugin Name: Название плагина Plugin URI: http://страница_с_описанием_плагина_и_его_обновлений Description: Краткое описание плагина. Version: Номер версии плагина, например: 1.0 Author: Имя автора плагина Author URI: http://страница_автора_плагина */ ?>
- Добавление хука, который вы хотите перехватить. Мы будем перехватывать событие (хук) the_content, которое возникает после того как контент получен из базы данных, но до того как он выведен на экран.. Перехват события выполняется функцией add_action(<событие>,<пользовательская функция>). Т.е. при перехвате события выполняется указанная пользовательская функция. Для обработки события the_content нужна пользовательская функция с одним аргументом. Обратите внимание, что контент должен вернуться из пользовательской функции с помощью конструкции return.
1 2 3 4 5
function send_message($content) { $content = $content.'<h1>Всего хорошего, и спасибо за рыбу!</h1>'; return $content; } add_action('the_content', 'send_message');
function send_message($content) { $content = $content.'<h1>Всего хорошего, и спасибо за рыбу!</h1>'; return $content; } add_action('the_content', 'send_message');
Полный текст плагина:
1 2 3 4 5 6 7 8 9 10 | <?php /* Plugin Name: Test plugin 1 */ function send_message($content) { $content = $content.'<h1>Всего хорошего, и спасибо за рыбу!</h1>'; return $content; } add_action('the_content', 'send_message'); ?> |
<?php /* Plugin Name: Test plugin 1 */ function send_message($content) { $content = $content.'<h1>Всего хорошего, и спасибо за рыбу!</h1>'; return $content; } add_action('the_content', 'send_message'); ?>