Шаблон

Создаем шаблон для будущего плагина на странице - https://wppb.me/

Этот шаблон копируем в папку плагинов wordpress.

Файловая структура

/my-plugin-name
    /admin
        class-wp-clear-admin.php
        index.php
    /css
        wp-clear-admin.css
    /js
        wp-clear-admin.js
    /includes
        class-wp-clear.php
        class-wp-clear-activator.php
        class-wp-clear-deactivator.php
        class-wp-clear-i18n.php
        class-wp-clear-loader.php
        index.php
    /languages    
        my-plugin.pot
    /public
        /css
            my-plugin-public.css    
        /js
            my-plugin-public.js
        /partials
            my-plugin-public-display.php
        class-my-plugin-public.php    
        index.php        
    index.php
    LICENSE.txt
    my-plugin.php
    README.txt
    uninstall.php

Папка 'admin'

В папке admin располагается весь код административной части, включая папки CSS, JS и других компонентов.

css/my-plugin-admin.css - Файл для стилей страницы настроек плагина.

js/my-plugin-admin.js - Файл для js страницы настроек плагина.

class-my-plugin-admin.php - Этот файл содержит класс для создания административной части.

my-plugin-admin-display.php - Файл содержит HTML код страницы настроек плагина.

Папка 'includes'

class-my-plugin.php - Основной файл с классом для работы плагина, куда добавляются все действия и фильтры.

class-my-plugin-activator.php - Файл содержит класс, необходимый для запуска во время активации плагина.

class-my-plugin-desactivator.php - Файл содержит класс для деактивации плагина.

class-my-plugin-i18n.php - Файл интернационализации.

class-my-plugin-loader.php - Файл загрузчика, который регистрирует все события, фильтры и хуки.

Папка 'languages'

my-plugin.pot - Файл локализации по умолчанию пуст.

Папка 'public'

css/my-plugin-admin.css - Файл для стилей публичной части страницы плагина.

js/my-plugin-admin.js - Файл для js публичной части страницы настроек плагина.

/partials/my-plugin-public-display.php - Файл содержит HTML код страницы если плагин внедряет в шаблон сайта какие либо данные.

class-my-plugin-public.php - Файл содержит класс для публичной части плагина. В методах класса добавляются события и фильтры, необходимые для реализации функциональности плагина.

Дополнительные файлы

Список и краткое описание файлов расположенных в корневой папке плагина:

LICENCE.txt - Файл лицензии GPL-2.

README.txt - Файл описания плагина и его установки.

uninstall.php - Файл удаления плагина из WordPress.

my-plugin.php - Файл начальной загрузки плагина. Тут расположена информация о плагине. Версия, автор и другие данные

Описание классов

Название классов может быть произвольным. Для понимания выбран класс my-plugin

/my-plugin-name
    /admin
        class-wp-clear-admin.php - {
        Здеь подключаем меню и прочий доступ к страницам в административной части wordpress
            1. Подключаем файлы стилей и js для административной страницы
            2. Описываем логику и выводим административную страницу  
        }
        
    /includes
        class-wp-clear.php - {
            Основной класс плагина
            1. Объявляем все переменные и функции.
            2. Вызываем функции для подключения всех зависимостей (loader, activator,
            deactivator, i18n)
            3. Объявляем класс для перевода (i18n.php) и через loader регистрируем событие
            4. Объявляем класс административной части (admin.php) 
            и через loader регистрируем хуки и события
            5. Объявляем класс пользовательской части (public.php) 
            и через loader регистрируем хуки и события
        }
        class-wp-clear-activator.php - {
            Можно использовать в качестве объявления БД и записи 
        }
        class-wp-clear-deactivator.php
        class-wp-clear-i18n.php
        class-wp-clear-loader.php - {
            Класс для удобного (быстрого) объявления Хуков и Событий.
        }
        
    /languages    
        my-plugin.pot - Файл перевода
    /public
        /partials
            my-plugin-public-display.php - Публичная страница
        class-my-plugin-public.php - {
        1. Подключаем файлы стилей и js для публичной страницы
        2. Описываем логику и выводим публичну страницу    
   
    my-plugin.php - {
        0. Вносим описание плагина
        1. Подключаем классы активации\деактивации, регистриреум их через хуки
        2. подключаем основной класс плагина и запускаем на выполнение
    }
    uninstall.php - {
        1. Здесь описываем всю логику при удалении плагина
    }

my-plugin

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

  • loader - для определения и доступа к классу loader

  • plugin_name - название плагина

  • version - версия плагина

my-plugin_loader

Класс для быстрого объявления и задействования действий и фильтров

  • actions - массив действий

  • filters - массив фильтров

my-plugin-i18n

Класс для поддержки переводов

  • load_plugin_textdomain - Загружает файл с переводами

my-plugin-activator

Класс для активации плагина

  • activate - выполняется при активации плагина

my-plugin-deactivator

Класс для деактивации плагина

  • deactivate - выполняется при деактивации плагина

my-plugin-admin

Класс административной части. Здесь может быть добавлено объявление меню и прочего.

  • enqueue_styles - подключение уникальных стилей административной страницы

  • enqueue_scripts - подключение уникальных скриптов js административной страницы

my-plugin-public

Класс публичной части.

  • enqueue_styles - подключение уникальных стилей пользовательской страницы

  • enqueue_scripts - подключение уникальных скриптов js пользовательской страницы

Last updated