2. Основы плагинов

В простейшем случае плагин WordPress представляет собой файл PHP с комментарием в заголовке плагина. Настоятельно рекомендуется создать каталог для размещения вашего плагина, чтобы все файлы вашего плагина были аккуратно организованы в одном месте.

Чтобы начать создавать новый плагин, выполните следующие действия.

  1. Перейдите в каталог wp-content установки WordPress.
  2. Откройте каталог плагинов – plugins.
  3. Создайте новый каталог и дайте ему соответствующее название, например, plugin-name.
  4. Откройте каталог (директорию) нового плагина.
  5. Создайте новый файл PHP. Его полезно назвать также, например, plugin-name.php.

Вот как выглядит процесс в командной строке Unix:

wordpress$ cd wp-content
wp-content$ cd plugins
plugins$ mkdir plugin-name
plugins$ cd plugin-name
plugin-name$ vi plugin-name.php

В приведенном выше примере «vi» – это имя текстового редактора. Используйте любой удобный для вас редактор.

Теперь, мы можем редактировать файл PHP своего нового плагина, и нам нужно добавить комментарий в заголовке плагина. Это специально отформатированный блочный комментарий PHP, содержащий метаданные о плагине, такие как его имя, автор, версия, лицензия и т.д. Комментарий в заголовке плагина должен соответствовать требованиям к заголовку и, как минимум, содержать имя плагина.

Только один файл в папке плагина должен иметь комментарий заголовка – если плагин имеет несколько файлов PHP, только один из этих файлов должен иметь комментарий заголовка.

<?php
/**
 * Plugin Name: YOUR PLUGIN NAME
 */

После сохранения файла вы сможете увидеть свой плагин в списке плагинов на вашем сайте WordPress. Войдите в админку своего сайта WordPress и нажмите «Плагины» (Plugins) на левой панели навигации администратора WordPress. На этой странице отображается список всех плагинов, которые есть на вашем сайте. Ваш новый плагин теперь должен быть в этом списке!

Хуки (hooks): действия (actions) и фильтры

Хуки WordPress (hooks) позволяют вам подключаться к WordPress в определенных точках, чтобы изменить поведение WordPress без редактирования каких-либо основных файлов.

В WordPress есть два типа хуков: действия (actions) и фильтры (filters). Действия позволяют добавлять или изменять функциональные возможности WordPress, а фильтры позволяют изменять содержимое по мере его загрузки и отображения пользователю веб-сайта.

Хуки служат не только для разработчиков плагинов; Хуки широко используются для обеспечения функциональности по умолчанию самим ядром WordPress. Другие хуки – это неиспользуемые заполнители, к которым вы можете просто подключиться, когда вам нужно изменить работу WordPress. Это то, что делает WordPress таким гибким.

Основные хуки

3 основных хука, которые вам понадобятся при создании плагина, это:

  • register_activation_hook(),
  • register_deactivation_hook(),
  • register_uninstall_hook().

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

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

Методы деинсталяции (удаления) используются для очистки после удаления (delete) вашего плагина через админ панель WordPress. Вы можете использовать его для удаления всех данных, созданных вашим плагином, таких как любые опции, которые были добавлены в таблицу опций (options).

Добавление хуков

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

Удаление хука

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

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

Вы можете узнать больше о создании хуков и взаимодействии с ними в разделе хуков этого руководства.

WordPress API

Знаете ли вы, что WordPress предоставляет несколько интерфейсов прикладного программирования (Application Programming Interfaces или API)? Эти API-интерфейсы могут значительно упростить ваш код, который вы пишете в своих плагинах. Вы не захотите изобретать велосипед, особенно когда очень много людей проделали до вас большую работу и проводили много тестов.

Наиболее распространенным из них является API параметров (Options API), который позволяет легко хранить данные в базе данных для вашего плагина. Если вы думаете об использовании cURL в своем плагине, то вам пригодится HTTP API.

Поскольку мы говорим о плагинах, вам нужно изучить API плагинов (Plugin API). Он имеет множество функций, которые помогут вам в разработке плагинов.

Как WordPress загружает плагины

Когда WordPress загружает список установленных плагинов на странице плагинов администратора WordPress, он просматривает папку плагинов (и ее подпапки), чтобы найти файлы PHP с комментариями в заголовках плагинов WordPress.

Если весь ваш плагин состоит из одного PHP-файла, например, как Hello Dolly, этот файл может находиться непосредственно в корне папки плагинов. Но чаще всего файлы плагинов будут находиться в собственной папке, названной в честь плагина.

Распространение плагина

Иногда созданный плагин предназначен только для вашего сайта. Но многим нравится делиться своими плагинами с остальным сообществом WordPress.

Прежде чем делиться своим плагином, вам нужно выбрать лицензию. Это позволяет пользователю вашего плагина знать, как ему разрешено использовать ваш код. Для обеспечения совместимости с ядром WordPress рекомендуется выбрать лицензию, которая работает с GNU General Public License (GPLv2 +).

Наверх ↑