Статьи

Разработка для каталога плагинов WordPress.org

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

Каталог плагинов WordPress

Официальный каталог плагинов WordPress.org

Каталоги и файлы базовых плагинов

Это необходимые файлы и каталоги для каждого плагина, который вы хотите опубликовать в каталоге плагинов WordPress. Эти файлы и каталоги представляют ваш базовый плагин . Текущая версия плагина и все будущие выпуски будут упакованы в один каталог, т.е. plugin-name .

  --plugin имя
     --assets
         -screenshot-n.png
         -icon-256x256.png
         -banner-772x250.png
     --багажник
         --admin
             --css
             --js
             --inc
             -admin.php
         --public
             --css
             --js
             --inc
             -public.php
         --inc
             -activation.php
             -deactivation.php
         --languages
             -plugin-name.pot
         -plugin-name.php
         -uninstall.php
         -README.txt
     --tags 

Давайте теперь рассмотрим использование каждого из этих каталогов и файлов. Мы также рассмотрим код, который нам нужно поместить в файлы.

Каталог активов

Этот каталог содержит изображения плагина, т.е. скриншоты плагина, изображение баннера для страницы плагина на WordPress.org и значок.

Вы можете предоставить любое количество скриншотов. Скриншоты могут быть в любом из следующих форматов: png, jpg, jpeg или gif. На скриншоте также должна отображаться последняя версия вашего плагина. Предположим, у вас есть пять скриншотов, тогда ваш каталог ресурсов должен выглядеть так:

  --assets
	 -screenshot-1.png
	 -screenshot-2.png
	 -screenshot-3.png
	 -screenshot-4.png
	 -screenshot-5.png
	 -icon-256x256.png
	 -banner-772x250.png 

Значки должны быть 256 × 256 пикселей, а баннер должен быть 772 × 250 пикселей. Не обязательно предоставлять скриншоты, пиктограмму или баннер, однако, рекомендуется предоставлять их, так как это увеличивает взаимодействие с вашим плагином.

Директория магистрали и меток

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

Когда вы закончите создавать свой новый плагин, вы захотите опубликовать его с версией 1.0. Тогда ваши каталоги будут выглядеть так:

  --plugin имя
	 --assets
		 -screenshot-n.png
		 -icon-256x256.png
		 -banner-772x250.png
	 --багажник
		 --admin
			 --css
			 --js
			 --inc
			 -admin.php
		 --public
			 --css
			 --js
			 --inc
			 -public.php
		 --inc
			 -activation.php
			 -deactivation.php
		 --languages
			 -plugin-name.pot
		 -plugin-name.php
		 -uninstall.php
		 -README.txt
	 --tags
		 --1.0
			 --admin
				 --css
				 --js
				 --inc
				 -admin.php
			 --public
				 --css
				 --js
				 --inc
				 -public.php
			 --inc
				 -activation.php
				 -deactivation.php
			 --languages
				 -plugin-name.pot
			 -plugin-name.php
			 -uninstall.php
			 -README.txt 

Каталог tags/1.0 будет содержать весь тот же код, что и текущий каталог транка.

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

  --plugin имя
	 --assets
		 -screenshot-n.png
		 -icon-256x256.png
		 -banner-772x250.png
	 --багажник
		 --admin
			 --css
			 --js
			 --inc
			 -admin.php
		 --public
			 --css
			 --js
			 --inc
			 -public.php
		 --inc
			 -activation.php
			 -deactivation.php
		 --languages
			 -plugin-name.pot
		 -plugin-name.php
		 -uninstall.php
		 -README.txt
	 --tags
		 --1.0
			 --admin
				 --css
				 --js
				 --inc
				 -admin.php
			 --public
				 --css
				 --js
				 --inc
				 -public.php
			 --inc
				 -activation.php
				 -deactivation.php
			 --languages
				 -plugin-name.pot
			 -plugin-name.php
			 -uninstall.php
			 -README.txt
		 --2.0
			 --admin
				 --css
				 --js
				 --inc
				 -admin.php
			 --public
				 --css
				 --js
				 --inc
				 -public.php
			 --inc
				 -activation.php
				 -deactivation.php
			 --languages
				 -plugin-name.pot
			 -plugin-name.php
			 -uninstall.php
			 -README.txt 

Пользователи загружают контент в каталогах версий, а не в магистральном каталоге.

Файл README.txt

Файл README.txt является основным источником информации, отображаемой для плагина в каталоге плагинов WordPress.org. Он должен присутствовать и должен четко объяснять, как использовать плагин и что делает плагин, даже если вы думаете, что это очевидно.

Файл README.txt присутствует в каталоге соединительных линий, а также в каталогах версий каталога тегов.

Это пример содержимого файла README.txt для нашего базового плагина. Этот файл написан на уценке .

  === Имя плагина ===
 Участники: (это должен быть разделенный запятыми список имен пользователей WordPress.org от разработчиков этого плагина)
 Пожертвовать ссылку: http://example.com/
 Теги: тег1, тег2, тег3
 Требуется как минимум: 3.0.1
 Проверено до: 3.4
 Стабильный тег: 2.0
 Лицензия: GPLv2 или более поздняя
 URI лицензии: http://www.gnu.org/licenses/gpl-2.0.html

 Вот краткое описание плагина.  Это должно быть не более 150 символов.  Здесь нет разметки.

 == Описание ==

 Это длинное описание.  Нет ограничений, и вы можете использовать Markdown (а также в следующих разделах).

 == Установка ==

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

 == Часто задаваемые вопросы ==

 = Это вопрос 1 =

 Это ответ на вопрос 1

 = Это вопрос 2 =

 Это ответ на вопрос 2

 == Скриншоты ==

 1. Это описание для нашего первого скриншота, т.е. screenshot-1.png.
 2. Это описание для нашего второго скриншота, т.е. screenshot-2.png.
 3. Это описание нашего третьего скриншота, т.е. screenshot-3.png.
 4. Это описание для нашего четвертого скриншота, т.е. screenshot-4.png.
 5. Это описание для нашего пятого скриншота, т.е. screenshot-5.png.

 == История изменений ==

 = 3.0 =
 * Изменение по сравнению с предыдущей версией.
 * Еще одно изменение.

 = 2.0 =
 * Изменение по сравнению с предыдущей версией.
 * Еще одно изменение.

 == Уведомление об обновлении ==

 = 3.0 =

 Уведомления об обновлении описывают причину, по которой пользователь должен выполнить обновление.  Не более 300 символов.

 = 2.0 =

 В этой версии исправлена ​​ошибка, связанная с безопасностью.  Обновите немедленно. 

Большинство вещей в файле README.txt говорят сами за себя.

Одна из вещей, которую вы должны понимать, это Stable tag: Стабильный тег файла README.txt в магистральном каталоге должен указывать на имя каталога последней версии. Вот как каталог плагинов WordPress узнает о последней и наиболее стабильной версии плагина. Когда вы создаете новую версию своего плагина, вам нужно изменить значение стабильного тега файла README.txt в магистральном каталоге на каталог новой версии. Стабильный тег файла README.txt в каталогах версий тегов должен указывать на имя этого конкретного каталога версий.

Файл README.txt в каталогах версий представляет каждую из версий, а файл README.txt в транковом каталоге представляет собой выпуск последней версии и, следовательно, совпадает с файлом README.txt каталога текущей версии.

файл plugin-name.pot

Не все, кто использует WordPress, говорят по-английски. Поэтому вы не хотите запретить пользователям, не говорящим по-английски, использовать ваш плагин. Вы можете избежать этого, переведя все отображаемые строки вашего плагина на разные языки. Процесс обеспечения совместимости вашего плагина с несколькими языками называется Интернационализация (i18n). Файл .pot содержит альтернативные языковые версии строк вашего плагина. Создание файла .pot для вашего плагина называется Localization (L10n). В SitePoint мы рассмотрели i18n и L10n в WordPress, что определенно стоит проверить, если вам интересно.

Этот языковой файл (.pot) не загружается автоматически, его нужно загрузить с load_plugin_textdomain функции load_plugin_textdomain . Для этого поместите этот код в основной файл вашего плагина, т.е. в файл plugin-name.php.

 load_plugin_textdomain("plugin-name", false, basename(dirname(_FILE_)), "/languages"); 

Файлы активации и деактивации

Файлы inc/activation.php и inc/deactivation.php содержат код, который выполняется, когда плагин активируется или деактивируется соответственно.

Теперь нам нужно загружать файлы inc/activation.php и inc/deactivation.php только во время активации и деактивации плагина соответственно. Мы можем сделать это, поместив приведенный ниже код в файл plugin-name.php .

 function plugin_activated() { require_once "inc/activation.php"; } function plugin_deactivated() { require_once "inc/deactivation.php"; } register_activation_hook(__FILE__, "plugin_activated"); register_deactivation_hook(__FILE__, "plugin_deactivated"); 

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

uninstall.php

Этот файл выполняется, когда плагин удаляется пользователем. Поместите это содержимое в файл uninstall.php

 //this check makes sure that this file is not called manually. if (!defined("WP_UNINSTALL_PLUGIN")) exit(); //put plugin uninstall code here 

Админ и публичные каталоги

Внутри admin/admin.php вы должны поместить панель инструментов админ-панели, соответствующую функциональности плагина. Затем внутри public/public.php вы должны поместить общедоступную функциональность плагина.

Публикация вашего плагина

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

Для внесения изменений или добавления выпусков в удаленный репозиторий вам необходимо создать локальную копию репозитория с использованием SVN. Затем внесите изменения в локальную копию и передайте ее в удаленный репозиторий с помощью SVN.

Дальнейшее чтение

Вы можете обратиться к часто задаваемым вопросам в каталоге плагинов WordPress.org. Вы можете использовать валидатор README.txt для проверки вашего файла README.txt. Вы также можете сгенерировать файл README.txt, используя Plugin Readme Generator на GenerateWP.