Создание плагина
Компоновка плагина
Имя плагина
Файлы плагина
Файл Readme
Заголовки плагина
Стандартная информация о плагине
Лицензия
Программирование плагина
Класс плагина
Паттерн Singleton
Определение путей
Функции активации, деактивации и удаление
Автоматическая загрузка классов
Создать публичный репозиторий на github
Создать свой плагин
Проект вести на github
Стандарты кодирования WordPress
Design Patterns in WordPress: The Singleton Pattern
Паттерн проектирования Singleton на PHP
Создание плагина
-
Компоновка плагина
-
Заголовки плагина
-
Программирование плагина
Пример плагина: github.com/SolomashenkoRoman
Компоновка плагина:
- /step-by-step-development-plugin (директория плагина)
- step-by-step-development-plugin.php (основной php-файл плагина )
- uninstall.php (файл отмены установок плагина)
- /includes (папка для включений PHP)
- /assets
- /js (папка для файлов JavaScript)
- /css (папка для файлов стилей)
- /images (папка для изображений плагина)
Заголовок плагина:
<?php
/*
Plugin Name: Название плагина
Plugin URI: http://страница_с_описанием_плагина_и_его_обновлений
Description: Краткое описание плагина.
Version: Номер версии плагина, например: 1.0
Author: Имя автора плагина
Author URI: http://страница_автора_плагина
*/
?>
Например:
/*
Plugin Name: Step By Step Development Plugin
Plugin URI: https://github.com/SolomashenkoRoman/step-by-step-development-plugin
Description: Step by step development of the plugin.
Version: 1.0
Author: romansolomashenko
Author URI: https://www.linkedin.com/in/solomashenkoroman/
License: A «Slug» license name e.g. GPL2
*/
Лицензия:
Чтобы использовать эту лицензию для вашего плагина, внесите в комментарий год, имя и электронный адрес автора. После этого ваш плагин будет лицензирован в соответствии GPL.
<?php
/* Copyright ГОД ИМЯ_АВТОРА_ПЛАГИНА (email: E-MAIL_АВТОРА)
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
?>
Паттерн Singleton:
namespace includes;
class StepByStepPlugin
{
private static $instance = null;
private function __construct() { }
public static function getInstance() {
if ( null == self::$instance ) {
self::$instance = new self; }
return self::$instance; }
}
StepByStepPlugin::getInstance();
Для определения URL к любому файлу в директории плагина существует функция plugins_url() :
<?php echo ‘<img src=»’ .plugins_url( ’images/icon.png’, __FILE__ ). ?>
Видно, что функция plugins_url( ) принимает два параметра. Первый параметр это путь относительно URL плагина, второй файл плагина, на который вы хотите
сослаться
WordPress снабжен различными функциями для определения URL:
- admin_url() — администраторский URL (http://…/my-first-site-en/wp-admin/).
- site_url() — URL сайта для текущего сайта (http://…/my-first-site-en/).
- home_url() — домашний URL текущего сайта (http://…/my-first-site-en/).
- includes_url() — URL директории Includes (http://…/my-first-site-en/wp-includes/).
- content_url() — URL директории Content ( http:/…/my-first-site-en/wp-content/).
- wp_upload_dir() — возвращает массив с локальной информацией по сконфигурированной директории загрузок.

