Источник: http://codex.wordpress.org/Writing_a_Plugin
По материалам codex.wordpress.org. Переводил самое основное.
Введение
До WordPress версии 1.2, если Вы хотели изменить поведение WordPress, Вы должны были редактировать (или "взломать") исходный текст WordPress . Однако, в поздних версиях WordPress, Вы можете легко изменить и добавить к функциональные возможности основной версии WordPress, используя плагины.Основной идеей плагина архитектуры состоит в том, чтобы держать ядро WordPress сравнительно простым, но достаточно гибким, что почти каждый аспект его ввода и вывода может измениться плагином. Вот определение плагина:
WordPress плагин - программа, или набор одной или более функций, написанных в PHP языке сценариев, который добавляет определенный набор особенностей или услуг к WordPress блогу, который может быть без изменений внутренного кода интегрирована с блогом, использующим точки доступа и методы, представленные WordPress Plugin Application Program Interface (API).
Если Вы обнаружили, что WordPress не имеют небольшого количества новых или изменяемых функциональных возможностей, первое, что необходимо сделать, так это найти хранилище различных плагинов www.codex.wordpress.org/Plugins.html , и посмотрите, если кто-то уже создал плагин, что отвечает Вашим требованиям. Если нет, то эта статья проведет вас через процесс создания Ваших собственных плагинов.
Эта статья предполагает, что Вы уже знакомы с основными функциональными возможностями WordPress, и программирования PHP.
Создание плагина
Пройдём пошагово по пунктам, учитывая все тонкости при создании хорошо структурированного WordPress плагина.
Имена, файлы, а также расположение
Название плагина.
Первая задача при создании плагина заключается в том, чтобы подумать о том, что плагин будет делать, и сделать уникальное имя плагина. Почитайте названия плагинов в других хранилищах, чтобы убедиться, что ваше имя является уникальным, вы могли бы также сделать поиск Google по запрсу Вашего названия. В большинстве плагинов разработчики решили использовать несколько имен, которые описывают то, что плагин делает;
например, связанных с погодой плагин содержал, вероятно, слово "погода" в названии.
Имя может состоять из нескольких слов.
Файлы плагина
Следующий шаг состоит в том, чтобы создать PHP файл с именем, полученных от выбранного Вами названием плагина. Например, если Ваш плагин будет называться "невероятная функциональность", вы можете присвоить своему PHP файлу имя fabfunc.php. Опять же, попробуйте выбрать уникальное имя. Люди, которые установят Ваш плагин будут устанавливать этот файл в директорию WordPress плагинов в их установке, wp-content/plugins /, где не должно быть двух PHP файлов с одинаковым именем.
Другой вариант заключается в том, чтобы разбить Ваш плагин на несколько файлов. Ваш плагин должен иметь по крайней мере один PHP файл, он может также содержать файлы, JavaScript, CSS файлы, графические файлы, языковые файлы, и т.д. Если существует несколько файлов, выберите уникальное имя для файла каталога, и для основных PHP файлов, например как fabfunc и fabfunc.php в данном примере, поместите все Ваши файлы плагина в этом каталоге, и сообщите пользователям что нужно устанавливать все папки под wp-content/plugins /.
В остальной части этой статьи, "файл PHP плагина" относится к основному файлу Php плагина , будь то в wp-content/plugins / или суб-каталог.
Файл Readme
Если вы хотите разместить Ваш плагин на http://wordpress.org/extend/plugins/, вам также необходимо создать файл readme.txt в стандартном формате, и включить его в ваш плагин. См. http://wordpress.org/extend/plugins/about/readme.txt для описания формата.
Главная страница
Полезно создать веб-страницу, в качестве домашней страницы для вашего плагина. Эта страница должна описать, как установить плагин, то, что она делает, то, что версии WordPress это совместимо, что изменилось от версии к версии вашего плагина, и как использовать плагин.
Заголовочный файл.
Теперь пришло время помещать немного информации в Ваш главный PHP файл плагина.
Стандартная информация о плагине
В верхней части окна плагина основного PHP файла должена содержаться стандартная заголовочная информация о плагине. Этот заголовок позволяет WordPress узнать, что ваш плагин существует, добавить его к плагину управления экраном с тем чтобы он мог быть задействован, загрузить его, и запустите его функции;
без заголовка, ваши плагин никогда не будет активирован, и никогда не запустится.
Вот формат заголовка:
Из минимума информации WordPress должен распознать название Вашего плагина. Остальная часть информации (если она существует), будет использоваться для создания таблицы плагинов при управлении плагином. Порядок расположения линий не имеет значения.
Лицензия
Далее обычно следует стандартный заголовок с информацией о лицензировании для плагина. Большинство плагинов использовать GPL лицензия используемой WordPress или лицензию совместимой с GPL. Чтобы указать GPL лицензии, внесите строки в плагине:
Программирование Вашего плагина
Теперь пришло время сделать что бы плагин действительно что-то сделал. Эта часть статьи содержит некоторые общие идеи относительно разработки плагинов, а также описано, что необходимо сделать для выполнения плагином посталенной задачи.
Ловушки для WordPress плагина.
Многие плагины достижения своих целей путем подключения одного или нескольких WordPress плагинов "ловушками". Смысл работы ловушек плагина заключается в том, что в различное время, хотя WordPress работает, WordPress проверяет, чтобы убедиться, что плагины которые выполняются в натоящее время, были зарегистрированы, и если да, то функции выполняются. Эти функции изменяют поведение по умолчанию в WordPress.
Например, прежде чем WordPress добавляет название поста в окне просмотра, он сначала проверяет, какой плагин зарегистрировал функции для "filter" ловушки под названием "the_title". Если это так, название текста передаются, в свою очередь, в рамках каждой зарегистрированной функции, в окончательный результат того, что печатается. Так что, если ваш плагин должен добавить некоторую информацию к названию поста, он может зарегистрировать "the_title" фильтр функцию.
Другим примером является "action" ловушка под названием "wp_footer". Внизу HTML страницы WordPress проверяет, в каких плагинах были зарегистрированы функции для "wp_footer" ловушки, и запускает их в свою очередь.
Теги шаблона
Еще один путь написания плагина для добавления функциональности WordPress является создание пользовательских тегов шаблона. Кто-то, кто хочет использовать ваш плагин можно добавить эти "теги", в свою тему, в сайдбаре, после раздела содержания, или там, где это необходимо. Например, плагин, который добавляет географические теги в посте, может определить тэга функция geotag_list_states () в сайдбаре, в которой перечислены все записи штатов с тегами, с ссылками на страницы архива.
Чтобы определить пользовательские тэги, нужно просто написать PHP функции в документе на домашней странице и / или в главном PHP файле плагина. Было бы неплохо при документировании функции, чтобы дать пример именно того, что должно быть добавлено к теме, файл для использования функции, в том числе Php and ?>.
Сохранение данных плагина в базу данных
Для большинства плагинов требуется получить некоторые данные владельцем сайта или блога пользователей и сохранить их в период между сессиями, для использования в функции фильтра, действия функций, а также в шаблоне функции. Эта информация должна быть сохранена в WordPress базе данных, что бы быть постоянной между сеансами. Есть два основных способа для сохранения плагин данные в базе данных:
Используйте механизм "опции" WordPress (описанный ниже).
Этот способ подходит для хранения сравнительно небольших объемов относительно неизменных(статических), по названию частей данных - типа данных, которые владелец сайта вводит при первой настройке плагина, и редко меняет в дальнейшем.
Создание новой пользовательской таблицы базы данных.
Этот способ подходит для передачи данных, связанных с отдельными постами, страницами, приложениями или комментариями - тип данных, которые будут расти, с временем, и тем, что не имеет индивидуальных имен.
Механизм опций для WordPress
В WordPress есть механизм для сохранения, обновления и извлечения отдельных, названний частей данных ( "options"), в базе данных WordPress. Вариант значения могут быть строками, массивами, PHP или объектов (они будут "серийные номера", или преобразуется в строку, до хранения, и, когда unserialized извлечения). Вариант названия строк, и они должны быть уникальными, чтобы они не конфликтовали с WordPress или другими плагинами.
Здесь приведены основные функции которые Ваш плагин может использовать для доступа к WordPress опциям:
add_option($name, $value, $description, $autoload);
Создает новую опцию; ничего не делает, если вариант уже существует.
$name
Обязательно (строка). Название опции, которая может быть добавлена.
$valueДополнительно (строка), по умолчанию путая строка. Значение опции будет сохранено.
$description
Дополнительно (строка), по умолчанию путая строка. Название опции, которая размещена в WordPress базе данных в случае если кто-то просматривает базу данных, чтобы узнать, что есть опции.
$autoload
Дополнительно, по умолчанию 'yes' (значения: 'yes' или 'no'). Если установлено 'yes' настройка автоматически возвращает на get_alloptions функции.
get_option($option);
Возможность получения значений настроек из базы данных.
$option
Обязательно (строка). Имя опций, значение которых вы хотите вернуть. Вы можете найти список параметров по умолчанию, которые устанавливаются с WordPress при выборе опций.
update_option($option_name, $newvalue);
Обновляет или создает опции значений в базе данных.
$option_name
Обязательно (строка). Название опции обнавления.
$newvalue
Обязательно. Новая величина для опции.
Панель управления
Если предположить, что ваш плагин имеет некоторые опции настройки, которые хранятся в WordPress базы данных (см. раздел выше), Вы, вероятно, захотите иметь панель администрации, что позволит пользователям Вашего плагина для просмотра и редактирования вариантов значений. Методы для этого описаны в
Продолжение следует.
Собираюсь написать свой плагин. Ваша информация была самой интересной. Спасибо.