Блог :: ЮБ

9 мая 2009

Как написать плагин для WordPress

Проще пареной репы! Не нужно быть семи пядей во лбу, достаточно начальных знаний PHP и API WordPress.

Плагин состоит как бы из двух частей: заголовка, по которому движок определяет, что это плагин и получает дополнительную информацию, и программной части.

Заголовок имеет вид

/*
Plugin Name: Имя плагина
Plugin URI: Адрес, по которому можно найти инструкцию и прочую инфу по плагину.
Description: Краткое описание того, что плагин должен делать
Author: Имя автора
Version: Версия и, возможно, дата создания.
Author URI: Сайт автора плагина
*/

и должен располагаться в начале файла плагина.

Программная часть в свою очередь имеет как бы две части: интерфейсную и собственно программу. В интерфейсной части описывается взаимодействие с API.

API WordPress представляет собой набор “хуков” - точек программного прерывания (крючков, на которых можно повеситься :)). Или, если по-простому, в специальных местах скриптов движка вызываются определенные пользователем функции. Хуки бывают двух типов: “действия” (action) и “фильтры” (filter). Разница в том, что “фильтры” могут быть вызваны в любом месте движка или плагинов, они принимают на вход какие-то данные, обрабатывают их и возвращают обратно. “Действия” вызываются по достижению определенного этапа выполнения программы, они ничего не возвращают, только выполняют какие-то операции. Список хуков ищите в Кодексе и в кодах движка.

Теперь простенький пример. Допустим, нам надо что-то поменять в тексте поста перед выводом. Для этого идеально подходит хук ‘the_content’. Привязываем свою функцию к этому хуку

add_filter('the_content','my_dummy_function');

Позаботьтесь о том, чтобы имя вашей функции было уникальным, т.е. не совпадало с именем какой-либо функции php, движка или другого плагина.

Теперь пишем саму функцию обработки.

function my_dummy_function($content) {
   $content = str_replace('в', 'фф', $content);
   return $content;
}

Получили на вход $content - обработали - вернули.

В результате объединения трех частей получаем

<?php
/*
Plugin Name: Dummy
Plugin URI: http://blog.portal.kharkov.ua/2009/05/09/plugin/
Description: Заменяет "в" на "фф"
Author: Ю.Б.
Version: V1.0
Author URI: http://blog.portal.kharkov.ua/
*/
add_filter('the_content','my_dummy_function');
function my_dummy_function($content) {
   $content = str_replace('в', 'фф', $content);
   return $content;
}
?>

сохраняем в файл, допустим, my_dummy_plugin.php, копируем его в папку /wp-content/plugins/, в админке активируем свой плагин и наслаждаемся результатам. Если, конечно, походя ничего не накосячили.

Не забываем, что <?php должно быть в самом начале файла, никаких пробелов, пустых строк, BOM и прочей ерунды перед ним быть не должно. После ?> - тоже. Кодировка - UTF-8.

Разумеется, эта микроинструкция не является полным и исчерпывающим руководством. Ее задача показать направление и избавить будущего плагинописателя от страха перед страшными словами плагин, API, хук и т.д.

Автор: Белотицкий
Разделы: WordPress

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru
См. также:
Как вставить посты в страницу?
Почта и WordPress
Update плагина belavir

Disclaimer. Я никого не принуждаю к миру использованию плагинов.
Плагины имеют полное право не работать на ваших сайтах.
Использование моих плагинов - не повод перекладывать свои заботы на меня.