WordPress: основы создания плагина

· WordPress, Основы и Разработка плагинов · 4 мин чтения

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

Введение

Если объяснить WordPress плагин в одном предложении, то это будет что-то подобное: PHP файл, с WordPress DocBlock‘ом (комментариями в начале файла).

Я советую создавать отдельную папку для каждого плагина, тем самым, они буду более правильно организованы.

Чтобы создать свой первый плагин, следуйте инструкции ниже.

  • Зайдите в папку wp-content, далее plugins — это папка, в которой хранятся все WordPress плагины
  • Создайте новую папку с названием вашего плагина (например, plugin-name)
  • Откройте папку вашего плагина
  • Создайте новый 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 файл, вам нужно добавить DocBlock комментарий. Этой PHP комментарий специального формата, который содержит метаданные о вашем плагине, например, такие как имя и автор. Плагин обязательно должен иметь название. Только один файл в папке вашего плагина должен иметь DocBlock.

<?php
/*
Plugin Name: НАЗВАНИЕ ВАШЕГО ПЛАГИНА
*/

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

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

WordPress хуки дают возможность внедрить что-либо в WordPress в нужном месте без изменения основных файлов CMS.

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

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

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

Три основных хука, которые вам нужно использовать при создании плагина: register_activation_hook(), register_deactivation_hook() и register_uninstall_hook()

  • activation hook запускается когда вы активируете ваш плагин. Вы можете использовать этот хук, для подготовки плагина (например, установить стандартные настройки в options таблице) перед тем как он будет использоваться конечным пользователем.
  • deactivation hook запускается когда вы деактивируете ваш плагин. Он используется для удаления временных данных связанных с вашим плагином.
  • uninstall методы запускаются в момент когда вы удаляете плагин через WordPress админку. Вы будите использовать для удаления всех данных связанных с плагином. Например, собственных таблиц в базе, данных из options таблицы и прочее.

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

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

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

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

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

Более углубленно, о создании и использовании хуков, вы можете почитать в разделе «Хуки«.

WordPress API

А вы знали, что WordPress поддерживает API (Application Programming Interface)? И даже не одно. API может помочь вам упростить код для вашего плагина. Вы же не хотите создавать велосипед, когда кто-то уже сделал его?

Одно из самым популярных — это API для опций (с англ. options), что является самым простым способом хранить настройки плагина в базе данных. Если вы думаете о cURL в вашем плагине, тогда HTTP API — это то, на что вам нужно взглянуть.

И так как мы говорим о плагинах, вам будет полезно познакомиться с API для плагинов. Там имеется достаточное кол-во функционала, которое может быть полезно для вас.

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

Когда WordPress подгружает установленные плагины со страницы «Плагины» в админ центре, он идет в папку plugins (и подпапки) и ищет PHP файлы с WordPress DocBlock‘ами, файл может находится прямо внутри plugins папки. Но лучше всего, когда каждый плагин имеет свою собственную папку и главного название файла состоит из названия плагина.

Поделиться своим плагином

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