КАК СОЗДАТЬ ПЛАГИН ДЛЯ WORD PRESS ИНСТРУКЦИЯ И МИРОВАЯ ПРАКТИКА

Основной файл плагина wpcli-demo-plugin.php — это отправная точка, которую мы можем использовать для написания логики нашего плагина.

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

\Ваш код начинается здесь.
require(‘post-types/books.php’);

Теперь вы можете использовать две команды wp-cli, чтобы проверить список плагинов и активировать только что созданный плагин.
Список плагинов wp и активация плагина wp. Первая команда выводит список всех установленных плагинов, а вторая
активирует данный плагин.

Из списка выше мы видим, что наш плагин wpcli-demo-plugin неактивен. Давайте включим его с помощью другой команды.

$ wp плагин активировать wpcli-demo-plugin
Плагин «wpcli-demo-plugin» активирован.
Успех: активирован 1 из 1 плагинов.

В основе любого плагина лежит PHP-код, логика его работы и правильное использование API WordPress. Для передачи любого плагина должен быть новый функционал с, возможно, минимальной настройкой, совместимостью с ядрами WordPress и грамотным рабочим кодом в условиях создания постоянно обновляющейся системы.

Содержание
  1. Создание плагина
  2. Дополнительные данные в заголовке
  3. Шаблон для создания плагина WordPress
  4. Хуки в плагине
  5. Как WordPress загружает плагины
  6. Репозиторий плагинов WordPress
  7. Введение
  8. Шаг 1. Создание файла readme. txt для WordPress плагина
  9. Скелет readme. txt
  10. Тело файла readme. txt
  11. Разметка Markdown
  12. Пример минимально заполненного файла readme. txt
  13. Шаг 2. Загрузка плагина на WordPress. org
  14. Шаг 3. S VN-репозиторий WordPress. org
  15. Структура SVN
  16. Загрузка иконки, обложки и скриншотов для плагина в SVN-репозиторий WordPress
  17. Обновления плагина и контроль версий
  18. Как назвать файлы плагина?
  19. Лицензия
  20. Лучшие практики, которые вам следует использовать при разработке плагинов WooCommerce / WordPress
  21. Используйте стандарты написания кода в WordPress
  22. Исключите прямой доступ к файлам плагина
  23. Как проверить, что WooCommerce активирован?
  24. Ваш плагин использует функции WooCommerce
  25. Весь код вашего плагина находится внутри хуков WooCommerce
  26. Отладка ошибок
  27. Contents
  28. Имена, файлы и местоположения
  29. Стандартная информация о плагине
  30. Зацепки (Hook) плагина
  31. Сохранение данных плагина в базе
  32. Механизм настроек WordPress
  33. Советы по разработке плагина
  34. Нельзя просто взять и написать плагин для WordPress?
  35. Определиться с тем, какие задачи будет выполнять плагин
  36. Метаданные плагина

Создание плагина

Чтобы создать плагин WordPress нужно:

Если плагин представляет собой один файл вроде Hello Dolly, то его можно переместить прямо в список плагинов — /plugins/hello.php и все будет работать. Однако рекомендуется соблюдать стандарт: плагин файлов должен располагаться самостоятельно, а плагин главного файла должен иметь название плагина папки.

Дополнительные данные в заголовке

Чтобы подключить плагин, достаточно указать только имя плагина (название плагина). Но можно также указать другие параметры плагина — это улучшит использование плагина в консоли WordPress.

<?php

/**
* Название плагина: Название плагина.
* Описание: Описание плагина желательно не очень длинное (140 символов)
* URI плагина: Ссылка на плагин страницы.
* URI автора: Ссылка на автора.
* Автор: Имя автора
* Версия: Версия плагина, например, 1.0.
*
* Текстовый домен: передача идентификатора, начало в load_plugin_textdomain().
* Путь к домену: Путь до передачи файла.
* Требуется как минимум: 2,5.
* Требуется PHP: 5.4.
*
* Лицензия: GPL2.
* URI лицензии: https://www.gnu.org/licenses/gpl-2.0.html.
*
* Сеть: Укажите «true» для возможности активировать плагин для сети Multisite.
* Обновление URI: https://example.com/link_to_update.
*/

// плагин кода

Название плагина, которое отображается в списке плагинов в админке.

Краткое описание плагина, которое отображается в разделе Плагины в админке. Не стоит превысить 140 символов.

Номер текущей версии плагина, например, 1.0 или 1.0.3.

При установке версии имейте в виду, что WP для сравнения версии использует функцию version_compare(). Поэтому при проверке версии убедитесь, что новая версия будет выше. Например, 1,02 больше 1,1

Плагин домашней страницы, который может находиться на WordPress.org или на вашем собственном сайте.

Имя автора плагина. В списке может быть более одного автора.

Сайт автора или профиль на другом веб-сайте, например, WordPress.org.

Самая слабая версия WordPress, на которой будет работать плагин. Например: 2.5.

Минимальная требуемая версия PHP. Например: 5.4.

Ссылка на лицензию, например, https://www.gnu.org/licenses/gpl-2.0.html.

Идентификатор перевода (домен локализации) используется в функциях локализации и в названии файла при переводе mo. Подробнее смотрите цитату здесь.

Нужен, если перевод файла находится не в том же почтовом ящике, в котором находится текущий файл. Например, файл .mo находится в файле /myplugin/languages, плагин файла в /myplugin/myplugin.php, затем тут же указываем /languages.

Укажите «true», чтобы плагин обязательно активировался во всей сети сайтов в сборке WordPress MU. Это невозможно активировать плагин для одного сайта, если включена мультисеть.

URL для обновления сайта. Используется в функции wp_update_plugins(). Из домена будет создан хук update_plugins_(имя хоста).

Шаблон для создания плагина WordPress

Чтобы не создавать файлы и структуру с нуля, можно использовать шаблон для создания плагина:

Шаблон представляет собой стандартную и организованную объектно-ориентированную основу.

Шаблон придерживаются стандартов PHP кода для WordPress.

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

Хуки в плагине

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

Существует два типа хуков в WordPress:

Хуки нужны не только для разработчиков плагинов, но и тем кто будет использовать ваш плагин. Хуки используются везде: в самом ядре WordPress, в плагинах и темах. Именно хуки делают WordPress таким гибким.

Непосредственно к плагинам относятся три функции:

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

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

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

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

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

Репозиторий плагинов WordPress

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

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

Если планируете отправлять плагин на WordPress.org, нужно следовать требованиям к заголовку плагина WordPress.

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

Введение

Загрузка собственных плагинов в официальный каталог WordPress.org для многих считается рутиной, а сам процесс занимает около часа, не считая периода ожидания доступа к репозиторию Subversion (который составлял около 12 часов).

В рамках этого руководства вы узнаете как правильно оформить и как загрузить свой плагин на WordPress.org, используя.

Если вы новичок, то советуем ознакомиться с нашим руководством по созданию своих WordPress плагинов!

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

Некоторые из преимуществ размещения вашего плагина в каталоге плагинов WordPress:

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

Шаг 1. Создание файла readme. txt для WordPress плагина

Все плагины, которые находятся в официальном репозитории WordPress, помимо самих фалов плагина, содержат обязательный файл . Файл readme.txt всегда находится в корневом каталоге плагина! Информация из этого файла отображается на странице плагина.

Скелет readme. txt

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

Тело файла readme. txt

Как вы уже заметили в файле readme.txt для WordPress плагинов если еще несколько блоков которые можно заполнить.

Разметка Markdown

Обратите внимание, что в секциях можно использовать разметку Markdown. Давайте приведем несколько примеров:

Пример минимально заполненного файла readme. txt

Пора двигаться дальше и загрузить плагин на WordPress.org

Шаг 2. Загрузка плагина на WordPress. org

Как загрузить свой плагин на WordPress.org – Процесс загрузки

Тут всё достаточно просто. Переходим на страницу загрузки и просто загружаем архив с плагином.

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

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

Шаг 3. S VN-репозиторий WordPress. org

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

Для работы SVN-репозиторием WordPress.org нам понадобиться программа TortoiseSVN. Скачиваем и устанавливаем версию для нашей ОС.

Как загрузить свой плагин на WordPress.org – TortoiseSVN загрузка данных

В открывшемся окне нужно указать пусть к , который получили в письме от модераторов:

Как загрузить свой плагин на WordPress.org – Настройка TortoiseSVN

Жмем кнопку «OK» и наблюдаем, как скачиваются файлы.

Структура SVN

В папку закачается всё содержимое репозитория. Структура будет следующая:

Загрузка иконки, обложки и скриншотов для плагина в SVN-репозиторий WordPress

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

Чтобы загрузить изображения для своего плагина нужно положить их в папку

После того, как вы положили все нужные изображения в локальную папку  нужно запустить синхронизацию. Кликаем правой кнопкой мыши по папке и выполняем команду «SVN Commint»:

Как загрузить свой плагин на WordPress.org – SVN Commit

В появившемся окне, в поле «Message», нужно указать причину загрузки обновления.

Как загрузить свой плагин на WordPress.org – Загрузка изображений

Поле «Message» нужно заполнять всегда, в противном случае, ваши обновления не будут приняты сервером!

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

Обновления плагина и контроль версий

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

Кликаем правой кнопкой мыши по папке и выполняем команду «SVN Commint», не забывая заполнить поле «Message».

Как загрузить свой плагин на WordPress.org – загрузка различный версий плагина

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

Для контроля версий своего плагина используется папка . Важно понимать, что создание версий осуществляется через папку .

Как загрузить свой плагин на WordPress.org – Контроль версий Branch/tag

В открывшемся окне в поле «To Path» необходимо заменить на , предполагая, что это новая версия плагина.

Как загрузить свой плагин на WordPress.org – тегирование версии

На этом всё, надеемся вы разобрались как загрузить свой плагин на WordPress.org, как его стилизовать и обновлять.

Мы постарались изложить всю информацию максимально доступно, но если у вас все равно остались вопросы, вы можете смело их нам задать, и мы обязательно поможем!

Не знаете как создать блог на WordPress? Мы решили создать наиболее полное руководство по созданию блога на WordPress без каких-либо технических знаний.

Рубрики в WordPress – это один из основных способ фильтрации различных типов записей и являются неотъемлемой частью любого WordPress сайта.

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

WordPress Seo практика

Вы еще используете Yoast SEO плагин для WordPress? ? И это в 2020 году? Ну окей – вот вам руководство по настройке, а еще мы расскажем про альтернативу!

Хотите улучшить свои SEO показатели? Вот все лучшие практики WordPress оптимизации, советы и лучшие WordPress плагины для SEO о которых вы должны знать.

Чем отличаются метки в WordPress от рубрик? Что лучше использовать для SEO? Практика использования рубрик и меток для сортировки контента в WordPress.

Ищете надежный и бесплатный плагин для резервного копирования WordPress? Вот топ-10 для правильного WordPress Backup. Ведь, ни кто не застрахован от взлома ?

В этом уроке мы начнём с основ – поговорим о том, с чего начать создание своего собственного расширения для WooCommerce.

Создание плагина WooCommerce по сути практически то же самое, что и создание обычного плагина для WordPress, но тем не менее есть некоторые принципиальные отличия, про которые нужно помнить.

Если вы искали разработку плагина WooCommerce / WordPress на заказ, то напишите нам.

Как назвать файлы плагина?

Начнём с того, что создадим в папке wp-content/plugins какую-то директорию и одноимённый с ней файл внутри. Например, мы можем назвать директорию misha-woo-plugin, тогда внутри неё должен присутствовать файл misha-woo-plugin.php.

Единственное, с чем тут нужно быть осторожным, это чтобы название вашего плагина не перекликалось с названием какого-либо плагина из репозитория WordPress, подробнее об этом.

Если в ваших планах засабмитить свой плагин в репозиторий плагинов WordPress, то вам необходимо в папке вашего плагина создать также файл readme.txt примерно со следующей информацией.

Поговорим о параметрах:

Тут мы перечисляем через запятую ID пользователей на wordpress.org, которые принимали участие в разработке плагина, например вот мой профиль. Этот параметр чувствителен к регистру!

Укажите тут самую свежую версию WordPress, на которой плагин был протестирован. Не указывайте минорные версии, типа 5.9.1, 4.3.2, только цифры и только мажор-версии 5.9, 4.3.

Стибальная версия вашего плагина. Про то, как назначать версии, можете почитать здесь.

Минимальная версия WordPress, на которой плагин будет работать / протестирован.

Лицензия, можете оставить, как указано у меня. Напоминаю на всякий случай, что все плагины WordPress должны разрабатываться под лицензию GPL.

Ссылка на страницу с лицензией.

Это всё, что касается файла readme.txt. Но как я уже сказал, это нужно для публикации плагина в репозиторий плагинов WP.

Этот код вы должны вставить в самое начало вашего плагина WooCommerce:

<?php
/**
* Plugin Name: Минимальное и максимальное количество товара WooCommerce
* Plugin URI: https://misha.agency/course/sozdanie-plagina-woocommerce
* Description: Этот супер-плагин позволяет устанавливать для каждого товара минимальное и максимальное количество для заказа
* Version: 1.0.0
* Author: Миша Рудрастых
* Author URI: https://misha.agency
* Developer: Миша Рудрастых
* Developer URI: https://misha.agency
* Text Domain: woocommerce-min-max-quantity
* Domain Path: /languages
*
* Woo: 12345:342928dfsfhsf8477842374wdf4234sfd
* WC requires at least: 2.2
* WC tested up to: 2.3
*
* License: GNU General Public License v3.0
* License URI: http://www.gnu.org/licenses/gpl-3.0.html
*/

А ниже – подробное описание этих параметров:

(единственный обязательный параметр!) Название плагина, как видите можно писать на русском.

Если у вашего плагина в интернете есть страница с описанием или документацией, то неплохо бы тут указать её URL.

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

Автор плагина. Это может быть название компании.

Ссылка на сайт автора.

Ссылка на сайт разработчика.

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

Если файлы перевода вашего плагина находятся в папке languages внутри папки плагина, то значение Domain Path будет /languages. Если ваш плагин находится в официальном репозитории WordPress, то этот параметр можно не использовать.

Если ваш плагин предназначен для сети сайтов WordPress Мультисайт и должен активироваться сразу для всей сети, то укажите этот параметр в значение true.

Если вы планируете продавать свой плагин через WooCommerce.com (да, и такое возможно), то там вы получите этот ключ, который нужен для получения обновлений плагина.

Минимальная версия WooCommerce, на которой ваш плагин будет работать.

Самая свежая версия WooCommerce, на которой вы уже успели протестировать свой плагин.

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

Лицензия

Подробно объясняю то, как работают лицензии для любых плагинов WordPress на видео.

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

Лучшие практики, которые вам следует использовать при разработке плагинов WooCommerce / WordPress

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

У меня даже была ситуация, когда я создал плагин, для него внезапно в админке появилось обновление (потому что существовал другой файл с таким же названием в репозитории WP), я его обновил – и вуаля, у меня стал совсем другой плагин 😁

Используйте стандарты написания кода в WordPress

Об этом у меня написан отдельный урок на сайте.

Исключите прямой доступ к файлам плагина

Добавляем этот код в начало всех PHP-файлов внутри плагина.

!
; // Выходим из файла, если была попытка прямого доступа

Суть этого кода в предотвращении прямого доступа к любым PHP-файлам внутри плагина, то есть например при вводе полного URL-адреса файла в браузере. Константа ABSPATH определена ядром WordPress, а это означает, что файл доступен только в контексте нашего плагина.

Как проверить, что WooCommerce активирован?

Дело в том, что так как ваш плагин написан для WooCommerce, то по логике вещей его код не должен выполняться в случаях, когда WooCommerce не активирован или не установлен на сайте.

Это можно легко проверить следующим образом:

, ,
// тут уже код вашего плагина

Или даже так:

Или даже написать отдельную функцию для этого:

/*
* Функция проверки, что плагин WooCommerce активирован
*/
!
is_woocommerce_activated
; ;

// используем функцию
is_woocommerce_activated
// тут уже код вашего плагина

На самом деле тут всё неоднозначно, но тем не менее давайте поговорим об этом.

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

Ваш плагин использует функции WooCommerce

Попробуйте сейчас открыть код вашего тестового сайта и вставить туда выполнение несуществующей функции, например gfsdf_misha_hello( 5, true ). Что получится? Ошибка 500 конечно же. Потому что функция не существует (нигде не определена).

А сильно ли изменится ситуация, если вы вместо этой функции вставите wc_get_product

? А если деактивируете WooCommerce? Да, да, да, та же самая ошибка 500.

, ;

true_woo_test

= ;

Попробуйте использовать этот код при включенном и отключенной WooCommerce. Чтобы код сработал, нужно зайти в редактирование любого товара и нажать кнопочку «Обновить».

Какие есть решения? Да, то, о чём я говорил выше, проверять, что WooCommerce активирован.

Весь код вашего плагина находится внутри хуков WooCommerce

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

Давайте предположим, что мы используем ту же функцию wc_get_product(), которая при отключенном плагине WooCommerce выкидывает нам ошибку 500. Но на этот раз мы используем её не внутри стандартного WordPress хука save_post, а внутри хука WooCommerce woocommerce_update_product.

, ;

true_woo_test_2

= ;

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

Получается, что тут проверять на активность плагина не нужно!

Отладка ошибок

Когда разрабатываете плагины, всегда включайте WP_DEBUG в файле wp-config.php, это поможет вам не только быстро обнаруживать ошибки в коде, но и избежать например неопределённых переменных.

Подробно о том, как этим пользоваться, рассказываю на видео.

7000 р4200 р

Скидка 40% до 30 сентября

English •
a Plugin 日本語
Русский •

(Add your language)

Contents

Вплоть до версии WordPress 1.2 возможность изменения его функционала «под свои потребности» или расширение возможностей достигались путем редактирования исходного кода ядра платформы WordPress (грубо говоря, «хакинга» ядра). Но это создавало различные неудобства (например, при обновлении версий), и от такой практики вскоре отказались. Разработчики внедрили достаточно удобную, понятную и легкую в использовании программистами систему расширения функционала с помощью «плагинов». Основная идея использования новой системы расширения возможностей состояла в том, чтобы сохранять ядро целостным и неизменяемым и в то же время дать PHP-программистам возможность изменять его поведение с помощью специальных легко подключаемых (и отключаемых) скриптов-плагинов. Итак, что такое плагин WordPress?

Плагин WordPress — это программа или набор функций, написанных на PHP, добавляющих определенный набор возможностей или сервисов к блогу на WordPress, которые легко объединяются с системой управления и функционалом WordPress при помощи Plugin Application Program Interface (API).

Если вы хотите добавить или изменить какую-либо функциональность WordPress, первое, что вам нужно сделать, это поискать уже готовые решения в разнообразных хранилищах плагинов (которые вы найдете в статье «Плагины») — может быть, кто-нибудь уже создал плагин, который удовлетворит ваши потребности. Если же вы ничего не нашли, эта статья поможет вам понять процесс создания собственных плагинов.

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

Эта часть статьи даст вам понять, какие шаги вы должны предпринять для создания хорошего плагина.

Имена, файлы и местоположения

Первая задача при создании плагина — подумать, что плагин будет делать, и придумать для него имя (желательно уникальное). Проверьте «Плагины» и другие хранилища, чтобы убедиться в том, что придуманное вами имя — уникальное; вы можете также погуглить по выбранному вами имени. Большинство разработчиков плагинов выбирают имена, которые отражают функциональность их плагина; например, плагин для отображения погоды может иметь в названии слово «погода». Название может состоять из нескольких слов.

Следующий шаг — создание файла PHP с именем, производным от названия плагина. Например, если ваш плагин будет называться Fabulous Functionality, вы можете назвать ваш файл fabfunc.php. Опять же, попробуйте создать уникальное имя. Люди, которые установят ваш плагин, положат этот файл в свою директорию для плагинов, wp-content/plugins/, и никакая пара используемых плагинов не должна иметь одинаковое имя файла.

Другой вариант — разбить ваш плагин на несколько файлов. Ваш плагин должен иметь как минимум один файл PHP; он также может содержать файлы JavaScript, CSS, изображения, языковые файлы и т.п. Если ваш плагин состоит из нескольких файлов, задайте уникальное имя для директории, в которой они лежат, и для главного файла PHP, такие как fabfunc и fabfunc.php в нашем примере, положите ваши файлы в эту директорию и дайте пользователям возможность устанавливать целую директорию в wp-content/plugins/.

В этой статье «PHP-файл плагина» означает главный PHP-файл, который находится в директории wp-content/plugins/ или в ее поддиректории.

Если вы хотите разместить ваш плагин на http://wordpress.org/extend/plugins/, вам необходимо создать файл readme.txt в стандартном формате и включить его в свой плагин. Смотрите http://wordpress.org/extend/plugins/about/readme.txt для получения разъяснений по формату.

Также очень удобно создать веб-страницу, играющую роль «домашней страницы» вашего плагина. Эта страница должна объяснять, как установить плагин, что он делает, с какими версиями WordPress совместим, что менялось от версии к версии вашего плагина, и как его использовать.

Самое время внести некоторую информацию в ваш главный файл PHP.

Стандартная информация о плагине

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

Минимальная информация, которая нужна WordPress, чтобы обнаружить ваш плагин — его название (Plugin Name). Остальная информация (если она есть) используется для создания таблицы плагинов на странице управления плагинами. Порядок строк неважен.

За стандартным заголовком обычно следует информация о лицензии на плагин. Большинство плагинов используют лицензию GPL или лицензию, совместимую с GPL. Для указания лицензии GPL добавьте следующие строки в файл вашего плагина:

Теперь пришло время заставить ваш плагин что-то делать. Эта часть статьи содержит несколько основных идей разработки плагинов, и объясняет, как довести до совершенства несколько задач, которые ваш плагин будет делать.

Зацепки (Hook) плагина

Итак, как же взаимодействуют компоненты системы плагин + ядро WordPress? Для того, чтобы плагины имели возможность влиять на работу ядра WordPress или на конечный результат его действий, была придумана система так называемых зацепок (часто их без перевода так и называют «хуками» от англ. hook — крючок, зацепка). Принцип ее действия состоит в том, что каждая более или менее важная элементарная функция в ядре WordPress перед тем как вернуть какой-то результат своей работы или совершить какое-то важное действие (например вывести содержимое записи на странице, или произвести запрос к базе данных) «пытается» исполнить дополнительные инструкции (строки кода), предназначенные именно для нее в файлах плагина. Такую попытку она делает с помощью зацепок, которые прописаны в теле этой функции. Вот пример вызова зацепок плагинов из ядра WordPress:

Если в плагине существует код, предназначенный изменить поведение одной из стандартных функций ядра, то он будет исполнен той функцией, для которой назначался. Если нет — функция ядра сработает как обычно.

Например, перед тем как WordPress добавляет заголовок к записи, он сначала проверяет, имеет ли какой-либо плагин зарегистрированные функции для зацепки под названием «the_title».

Если имеет, текст заголовка «пропускается» через каждую такую зарегистрированную функцию, и выводится конечный результат.

Таким образом, если ваш плагин должен добавлять некую информацию к заголовку записи или изменять ее, в нем должна быть зарегистрирована зацепка-фильтр для «the_title» и в нем должна быть фукнция, которая делает все нужные изменения с заголовками.

Другой пример — существует зацепка под названием «wp_footer». Перед концом HTML-страницы, которую генерирует WordPress, он проверяет, имеют ли какие-нибудь плагины зарегистрированную функцию для «wp_footer», и запускает ее в случае обнаружения таковой.

Все зацепки в WordPress делятся на две категории — Фильтры и Действия. (filters и actions соответственно). Фильтры (filters) действительно предназначены для «фильтрования» (изменения) любых данных, перед тем как они будут выведены на странице или добавлены для хранения в базу данных. Это фильтрация спама, ошибок или просто ошибочного ввода в формах, откуда, собственно, и произошло английское название. А вторые (действия, actions) предназначены для замены различных действий ядра вашими действиями (например изменения строки запроса к базе данных), в программировании такое изменение действий базового функционала ещё называют перегрузкой.

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

Сохранение данных плагина в базе

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

Механизм настроек WordPress

Информацию о том, как создать страницу, автоматически сохраняющую ваши настройки, можно получить в статье «Создание страниц настройки».

WordPress имеет механизм для сохранения, обновления и извлечения отдельных именованных данных, хранящихся в базе WordPress. Значения настроек могут быть строками, массивами или объектами PHP (они будут сериализованы или сконвертированы в строку перед записью, и десериализованы перед извлечением). Названия настроек — строки, и они должны быть уникальными, чтобы не конфликтовать с WordPress или другими плагинами.

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

add_option($name, $value, $deprecated, $autoload);

Создает новую настройку; не делает ничего, если опция уже существует.

Обязательный (строка). Имя настройки.

Необязательный (строка), по умолчанию — пустая строка. Значение настройки.

Необязательный (строка), больше не используется WordPress. Можно передать пустую строку или null, чтобы использовать следующий за ним параметр $autoload.

Необязательный, по умолчанию — «да» (enum: «да» или «нет»). Если установлено «да», настройки автоматически извлекаются функцией get_alloptions.

Извлекает значение настройки из базы.

Обязательный (строка). Имя настройки, значение которой нужно получить. Список настроек по умолчанию, созданных при установке WordPress, можно найти в Option Reference.

Обновляет или создает значение настройки в базе (примечание: можно не вызывать add_option, если вам не нужен параметр $autoload).

Обязательный (строка). Имя настройки для обновления.

Обязательный. Новое значение настройки.

При условии, что ваш плагин имеет некие опции, хранящиеся в базе WordPress (см. раздел выше), вы, вероятно, захотите иметь административную панель, которая позволит пользователям смотреть и редактировать настройки вашего плагина. Методы создания панелей описаны в статье «Добавление административных меню».

После того, как вы закончили писать ваш плагин, его необходимо интернационализировать (при условии, что вы планируете распространять ваш плагин). Интернационализация — это процесс настройки программного обеспечения под локализацию; локализация — это процесс перевода на различные языки отображаемого программой текста. WordPress используется по всему миру, и интернационализация и локализация встроены в его структуру, в том числе, и локализация плагинов. Подробности использования GNU gettext для локализации WordPress можно узнать в Translating WordPress.

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

Переводит $message, используя текущую локаль для $domain. Оберните строки, которые собираетесь использовать в расчетах, в эту функцию.

Переводит $message, используя текущую локаль для $domain, и выводит на экран. Оберните в эту функцию строки, которые собираетесь показывать пользователю.

Если ваш плагин не находится в собственной поддиректории, второй аргумент функции load_plugin_textdomain можно опустить.

Если вы читаете эту секцию, чтобы интернационализировать тему, можно следовать приведенным выше рекомендациям, с некоторыми исключениями:

Советы по разработке плагина

Это последняя часть статьи, включающая в себя различные советы по разработке плагина.

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

Если вам требуется разработка плагина на заказ для WordPress или для WooCommerce, то я и моя команда будем рады вам помочь, для этого напишите нам.

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

Сначала может показаться, что создание плагина для WordPress — это что-то невероятно сложное и это нужно долго изучать, но на самом деле всё зависит от задач, которые выполняет плагин, понятно, что если вы разрабатываете «свой WooCommerce», то возможно вам будет мало и года разработки, но если ваш плагин просто добавляет несколько строчек CSS в админку, то это займёт от силы 5 минут.

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

Весь наш процесс мы разделим на шаги для удобства понимания.

Определиться с тем, какие задачи будет выполнять плагин

Скажу так, код, который находится в плагине, очень схож с тем кодом, который размещают в functions.php. То есть вы можете потренироваться с готовыми хуками.

По сути это готовый код и если вы отправите его в functions.php, то всё будет отлично работать.

Но мы же пишем плагин, поэтому этот код держим рядом и переходим ко второму шагу.

Есть два варианта:

В общем либо /wp-content/plugins/misha.php, либо /wp-content/plugins/misha/misha.php (рекомендуется).

Однако после того, как вы всего лишь создадите эти файлы, ничего не произойдёт, поэтому добавьте в главный файл плагина (ну он сейчас один) эти строчки:

<?php
/* Plugin name: Мишин плагин */

Поимимо «Plugin name» у плагинов есть и другие метаданные, давайте их разберём подробнее.

Метаданные плагина

В свой главный файл плагина теперь отправляем что-то в этом духе:

<?php
/*
* Plugin Name: Мишин плагин
* Plugin URI: https://misha.agency/wordpress/sozdai-svoi-plugin.html
* Description: Описание супер-плагина
* Version: 1.1.1
* Author: Миша Рудрастых
* Author URI: https://misha.agency
* License: GPLv2 or later
* License URI: https://www.gnu.org/licenses/gpl-2.0.html
*
* Text Domain: truemisha
* Domain Path: /languages
*
* Network: true
*/

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

Вот описание всех мета-параметров:

Ну как бы описание.

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

Ссылка на ваш сайт или на профиль в соц сети.

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

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

Оцените статью
NaWordpress.ru
Добавить комментарий