WordPress один из популярных движков для сайтов, который позволяет расширять функционал посредством плагинов. На данный момент существует множество плагинов разного функционального назначения, которые позволяют реализовать те или иные задачи. При необходимости мы можем создавать свои плагины, об этом и пойдет речь дальше. Попробуем создать свой плагин для WordPress, для этого от нас потребуется знание основ PHP, а так же API WordPress.
Простейший плагин может состоять из одного PHP-файла, который размещается в директории /wp-content/plugins. Структуру плагина можно разделить на две составляющие: заголовок, по которому движок определяет что файл является плагином, получая дополнительную информацию, и программной части.
Посмотрим, как выглядит заголовок:
/* Plugin Name: MyFirstPlugin Plugin URI: https://href.kz/blog/wp/sozdaem-svoj-plagin-wordpress Description: Описание плагина Author: HTMAKER Version: v.1.0 Author URI: https://href.kz */
Заголовок обязательно должен размещаться в самом начале файла плагина.
Переходим к программной части. Программную часть можно так же разделить на интерфейсную часть, а так же саму логику плагина. Интерфейсная часть содержит код описывающий взаимодействие с API WordPress.
API в WordPress представляет набор «хуков» — точки программного прерывания. Таким образом, в специальных местах при выполнении скриптов движка можно вызывать пользовательские функции. Хуки разделяются на два типа: «action» (действия), «filter» (фильтры).
Фильтры (filter) могут вызываться с любого места в движке или плагинов, принимая на вход какие-либо данные, производя необходимые манипуляции с данными – возвращать их обратно.
Действия (action) выполняются по достижению определенного этапа выполнения программы, как правило, ничего не возвращают, только выполняя какие либо операции.
Список хуков можно найти на сайте codex.wordpress.org
Для примера попробуем сделать простой плагин, который будет заменять слово «Привет» на «Салют» перед выводом текста поста. Воспользуемся хуком «the_content», добавим привязку нашей функции к данному хуку:
add_filter('the_content','my_hello_replace');
Стоит заметить, что имя функции следует подбирать с особым вниманием, во избежание дублирования имен других функций плагинов.
Далее описываем функцию:
function hello_replace($content) { $content = str_replace('Привет', 'Салют', $content); return $content; }
Функция проста: в качестве входного параметра получает текст в переменной $content, с помощью стандартной PHP-функции str_replace заменяем необходимые строки, после замены возвращаем результат.
В итоге, должен получиться PHP-файл, с таким содержимым:
<?php /* Plugin Name: Hello-Salut Plugin URI: https://href.kz/blog/wp/sozdaem-svoj-plagin-wordpress Description: Плагин заменяет в тексте слово «Привет» на «Салют» Author: А.Рустам Version: v.1.0 Author URI: https://href.kz */ add_filter('the_content','hello_replace'); function hello_replace($content) { $content = str_replace('Привет', 'Салют', $content); return $content; } ?>
Файл необходимо разместить в директории с плагинами, после чего активировать его из админки WordPress.