Click

Напишем плагин для WordPress. Часть 2. Общая теория.

wordpress-plugin-2  В первой части серии публикаций на тему создания собственного wordpress плагина я постарался ответить на вопросы "Зачем и как написать плагин для WordPress?". Теперь же пора приступить к практической реализации замысла по созданию плагина. В качестве примера я рассморю плагин, который будет создавать модифицировать заголовок и тело записи на этапе её публикации (т.е. в тот момент, когда пользователь нажимает кнопку "Опубликовать" или "Обновить"). По-моему такой подход интересен в первую очередь тем, что позволит в будущем на основе плагина примера написать более серьёзный плагин для WordPress, например – автоматически изменяющий контент.

Приступим.

Оглавление к курсу создания плагина для WordPress

Показать оглавление »

  1. Введение, общая информация (Напишем плагин для WordPress. Часть1.)
  2. Общая теория (Напишем плагин для WordPress. Часть 2.)
  3. Подготовка к созданию страницы настроек (Напишем плагин для WordPress. Часть 3.)
  4. Создание страницы настроек плагина (Напишем плагин для WordPress. Часть 4.)
  5. Функциональная составляющая (Напишем плагин для WordPress. Часть 5.)
  6. Интернационализация и русификация (Напишем плагин для WordPress. Часть 6.)
  7. Добавление в репозиторий WordPress.org (Напишем плагин для WordPress. Часть 7.)
  8. Файл с исходным кодом плагина для WordPress

Механизм работы плагинов WordPress.

Рассмотрим для начала в общих чертах механизм работы любого wordpress плагина, чтобы свой плагин писать осмысленно.


Перехват событий (хуки)

Механизм работы плагинов базируется на перехвате и дальнейшей обработке пользовательскими функциями событий движка – т.н. хуках (hook). Таким образом, для написания плагина, изменяющего запись при публикации, необходимо перехватывать соответствубщее событие, обрабатывать его и возвращать результат движку.

Для перехвата событий можно использовать два метода:

  • add_action (переопределит базовую функцию wordpress на пользовательскую)
  • add_filter (сработает при вызове базовой функции, вызвав для выполнения пользовательскую функцию)

Соответственно, возможны и обратные действия – remove_action и remove_filter.

В плагине-примере я буду использовать метод add_filter, т.к. мне необходимо лишь изменить данные, поступющие для публикации, сам же механизм публикации я трогать не хочу (и не нуждаюсь в этом).

Обработка событий (функции)

Для обработки перехваченных событий применяются функции (они же – процедуры). В процессе написания плагина для WordPress мы ещё не раз с ними столкнёмся. В php для определения функции используется служебное слово function.

Начало работы над плагином

Описание плагина

Минимально необходимая нефункциональная часть плагина – это краткие сведения о нём, добавляемые в начало файла плагина. Выглядит следующим образом (справедливости ради должен отметить, что действительно необходимо указывать только название плагина, но лучше заполнить побольше информации, тем более, что это пригодится в будущем):

/*
Plugin Name: My New Plagin
Plugin URI: http://www.dimio.org/my_plugin
Description: Мой плагин для WordPress. 
Version: 0.1
Author: dimio
Author URI: http://www.dimio.org
*/

Эту секцию необходимо вставить в начало файла плагина, после отрывающегося тега php ( <?php ).

Установка и удаление wordpress плагина

При написании плагина для WordPress нужно помнить и о правилах хорошего тона, а именно – использовать инструменты установки и удаления плагина. Некоторые функции (такие, как создание таблицы с данными для работы плагина, добавление новых опций, используемых плагином, в соответствующую таблицу БД wordpress) нужно выполнять только один раз – при установке плагина. Ну а при его удалении необходимо прибрать за собой – удалить установленные опции и созданные таблицы. Для этих целей в wordpress служат перехватчики

register_activation_hook(__FILE__, ‘myplug_set_options’);
register_deactivation_hook(__FILE__, ‘myplug_unset_options’);

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

<?php
/*
Plugin Name: My New Plugin
Plugin URI: http://www.dimio.org/myplugin
Description: Мой плагин
Version: 0.1
Author: dimio
Author URI: http://www.dimio.org
*/

register_activation_hook(__FILE__, 'myplugin_set_options');
register_deactivation_hook(__FILE__, 'myplugin_unset_options');
?>

Написать плагин для WordPress действительно просто!

На этой радостной ноте я хотел бы закончить общетеоретическую часть и в дальнейшем перейти к рассмотрению вопроса о создании страницы настроек плагина. В заключение рекомендую ознакомиться со списком событий wordpress, на которые можно установить перехватчик.

Еще на похожие темы:

Category Рубрики: seo, Блоггинг, Кодинг | Tag Метки: , , , , , | Comments 4 комментария

Comments

4 комментария to “Напишем плагин для WordPress. Часть 2. Общая теория.”

  1. karser пишет:

    опечатка
    настройки плагина будут уничтожеЫН вызовом myplug_unset_options

    • dimio пишет:

      Некоторые блоггеры специально делают опечатки с целью повысить “уникальность” текста в глазах поисковых систем, так что не буду отказывать в праве на существование этой описке, раз уж она пролезла через проверку орфографии :)

  2. Илларион пишет:

    Ну это уже кое-что, дорогой аффтар :-) Но всё же очень мало информации и много лишних слов. Старайтесь писать уже, без лишней болтовни, но чтобы читать было интересно :-)

Leave a Reply