Write plugin in php

Как создать плагин

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

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

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

  1. Создать папку плагина. В ней будут лежать файлы нашего плагина. Создается она в папке всех плагинов WordPress. Например, создаем папку /wp-content/plugins/my-plugin-name .
  2. Создать главный файл плагина. Рекомендуется чтобы название этого файла совпадало с названием папки плагина. Например, my-plugin-name.php → /wp-content/plugins/my-plugin-name/my-plugin-name.php .
  3. Создать описание плагина — заголовки плагина. Они нужны чтобы wordpress распознал плагин как плагин, иначе он просто не будет работать. В самое начало главного файла плагина, нужно добавить php комментарий, где указать имя плагина:

Готово! Теперь наш плагин можно увидеть в разделе Плагины в админ-панели.

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

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

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

Plugin Name:(обязательный) Название плагина, которое отображается в списке плагинов в админке. Description: Краткое описание плагина, которое отображается в разделе Плагины в в админке. Рекомендуется не превышать 140 символов. Version:

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

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

Plugin URI: Домашняя страница плагина, которая может быть на WordPress.org или на вашем собственном сайте. Author: Имя автора плагина. В списке может быть более одного автора. Author URI: Сайт автора или профиль на другом веб-сайте, например, WordPress.org. Requires at least: Самая низкая версия WordPress, на которой будет работать плагин. Например: 2.5 . Requires PHP: Минимальная требуемая версия PHP. Например: 5.4 . License: Короткое имя лицензии плагина, например GPL2. Более подробную информацию о лицензировании можно найти на WordPress.org. License URI: Ссылка на лицензию, например, https://www.gnu.org/licenses/gpl-2.0.html . Text Domain: Идентификатор перевода (домен локализации) используется в функциях локализации и в названии файла перевод mo. Подобрее смотрите цитату здесь. Domain Path: Нужен если файл перевода находится не в той же папке, в которой находится текущий файл. Например, .mo файл находится в папке /myplugin/languages , а файл плагина в /myplugin/myplugin.php , тогда тут указываем /languages . Network: Укажите «true» чтобы плагин обязательно активировался по всей сети сайтов в MU сборке WordPress. Это сделает невозможным активировать плагин для одного сайта, если активирована мультисеть. Update URI: URL для обновления сайта. Используется в функции wp_update_plugins(). Из домена будет создан хук update_plugins_(hostname).

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

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

  • WordPress Plugin Boilerplate — генератор шаблона, где указывается название плагина, которое будет использовано в названиях папок, классов и функций — WordPress Plugin Boilerplate Generator.

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

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

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

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

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

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

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

  • register_activation_hook() — регистрирует функцию, которая будет срабатывать во время активации плагина.
    Используется для добавления настроек плагина и т.п.
  • register_deactivation_hook() — регистрирует функцию, которая должна запускаться после деактивации плагина.
    Используется для удаления временных данных плагина.
  • register_uninstall_hook() — регистрирует функцию, которая вызывается при удалении плагина.
    Используется при удалении плагин для удаления всех данных плагина: в настройках, в файлах, в базе данных и т.д.

Кроме этих трех функций к API плагинов относятся все функции хуков и некоторые функции плагинов.

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

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

PHP Функции и WordPress API

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

  • API настроек — упрощает создание и управление опциями плагина, которые сохраняются в базу данных.
  • plugin_dir_url() — Получает URL папки (директории, каталога), где находится указанный файл плагина (со слэшем на конце).
  • register_activation_hook() — Регистрирует функцию, которая будет срабатывать во время активации плагина.
  • register_deactivation_hook() — Регистрирует функцию, которая будет запускаться после деактивации плагина.
  • register_uninstall_hook() — Регистрирует функцию, которая вызывается при удалении плагина, чтобы почистить все следы прибывания плагина в системе.
  • HTTP API — упрощает создание HTTP запросов в PHP. Отличная замена велосипедов на cURL.

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

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

$active_plugins = get_option( 'active_plugins' ); /* Получим в $active_plugins Array ( [0] => hello-dolly/hello-dolly.php [1] => backupwordpress/backupwordpress.php [2] => democracy-poll/democracy.php [3] => disable-emojis/disable-emojis.php ) */

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

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

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

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

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

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

Источник

Простая система плагинов на PHP своими руками

Это ну практически максимально простой способ создания системы плагинов на основе хуков (hook) которую я смог придумать минут за пять. Для её полноценности её нужно ещё нормально доработать, но делать этого мы конечно же не будем. Однако в таком виде она тоже функционирует, это не совсем обычная концепция.

Мысль такая:
1. Создаём и подключаем класс, в который собираем все хуки и функции к ним закреплённые
2. Создаем в этом классе функцию при вызове которой вытаскивает все подвешенные хуки и запускает функции привязанные к ним
3. Вставляем куда надо вызов второй функции
4. Создаём плагины в которых накидываем функции на хуки
5. .
6. Готово

Нам пригодится такая структура:
index.php
include
— hook.class.php
plugins
— test
— — plugin.php

Для начала откроем и опишем include/hook.class.php:

 public static function runHook($hookName, &$variable = false) < //функция, которая будет запускать все функции прицепленные определённым хуком if (isset(self::$hooks[$hookName])) < //проверяем, есть ли такой хук воще foreach (self::$hooks[$hookName] as $f) < //начинаем пробегаться по всему что к этому хуку прикреплено if ($variable != false) < //Если хук с параметром, тогда call_user_func_array($f, array(&$variable)); >else < //Иначе мы просто так её запускаем call_user_func($f); >//if > //foreach > //if > //function runHook >

Теперь index.php:

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

Ну наверное теперь нужно проверить как это всё работает, поэтому я изначально попросил создать папку plugins с плагином test внутри.
Откроем plugins/test/plugin.php и заполним чем-нибудь:

 PM::Hook('menu', 'test'); //Прикрепляем к хуку функцию test function info() < //Функция info которая без параметров. Сюда можно всякой разной дичи добавить global $info; //Можно например подцепиться к переменным которые находятся в той же области видимости как и runHook $info = 'Это из функции info на хуке info '; //Изменим ту самую переменную которая находится возле run echo "Тут какая-нибудь информация"; //Просто сделаем echo, почему бы и нет >PM::Hook('info', 'info'); //Цепляем функцию info к хуку info function style() < //добавим ещё функцию style к хуку info echo "p > a "; > PM::Hook('info', 'style'); //прицепим её так же к хуку

Ну и под конец модифицируем index.php до такого состояния:

Ну и в итоге видим примерно такую картинку

Стили накинулись (хотя так делать со стилями неправильно, это только для теста), переменная изменилась, пункт в меню добавился, echo отпечатало
Вопросы, пожелания и всё такое Вы можете оставить прямо в комментах под статьей )

Источник

Simple Script in PHP to write a basic WordPress Plugin

wordpress plugin

WordPress is a popular free and open-source content management system (CMS) used for creating and managing websites. It was first released in 2003 and has since grown to become the most widely used CMS on the web, powering around 40% of all websites on the internet.

WordPress is known for its ease of use and flexibility, allowing users to create websites ranging from simple blogs to complex e-commerce sites and online communities. It has a vast library of plugins and themes that can be used to customize the appearance and functionality of a website. Additionally, WordPress is open source, which means that the code is freely available to be modified and improved upon by developers worldwide.

What is a wordpress plugin?

A WordPress plugin is a piece of software that can be installed and activated on a WordPress website to add new features or functionality to the site. Plugins are written in PHP and can interact with WordPress core functions and data to perform tasks such as adding contact forms, improving website speed, enhancing security, and more. There are thousands of plugins available in the official WordPress plugin repository and from third-party developers. Users can search and install plugins from within the WordPress dashboard, and many plugins can be customized to fit the specific needs of a website.

Sure, here's a simple script that creates a basic WordPress plugin: php Copy code // Add your plugin code here To create the plugin, follow these steps: Open a text editor and create a new file. Copy and paste the script above into the file. Save the file with a name like "my-simple-plugin.php". Upload the plugin file to your WordPress site's "wp-content/plugins" directory. Activate the plugin in the WordPress admin dashboard. Once the plugin is activated, you can add your code to the comment "Add your plugin code here". This could be any PHP code that you want to run when the plugin is loaded. For example, you could add a shortcode that displays the current date: lua Copy code add_shortcode( 'current_date', 'my_simple_plugin_current_date' ); function my_simple_plugin_current_date() < return date( 'F j, Y' ); >This code creates a shortcode called "current_date" that outputs the current date when used in a post or page. You can customize this code to do whatever you want your plugin to do.

Wordpress Plugin Script

author avatar

Pramod Dhakal is a Tech entrepreneur at heart, a natural leader, an Agile practitioner, and a Digital Transformation provoker. He has spent over a decade implementing various large-scale transformation initiatives in large multinational organizations. He is an author and contributor at Hitechies largely in the technology space.

Источник

Читайте также:  Javascript обойти все свойства объекта
Оцените статью