Функционал любого сайта на WordPress обеспечивается двумя способами:
- В шаблоне темы;
- С помощью плагинов.
Более того, если разобраться, то реализуется всё одинаковым способом, просто в разных местах. Для добавления функционала в шаблон нужно править файл «functions.php», а в случае с плагинами нужно просто тот же самый код разместить в отдельном файле.
Сам код Вы можете брать из открытых источников или написать самостоятельно, используя какие-нибудь курсы (например: PHP для начинающих от WebShake).
Механика создания плагина
Во-первых, чтобы создать файл с кодом плагина, для него сначала нужно подготовить каталог, который будет находиться на хостинге по привычному нам пути «wp-content/plugins/».
Там мы создаём каталог, с уже выбранным названием плагина. Пусть это будет для примера «new-plugin», хотя я, конечно, рекомендую давать плагинам говорящие названия, чтобы потом его было можно найти при визуальном осмотре родительского каталога.
Внутри этого каталога будут лежать файлы плагина. В прочем, для простых фиксов достаточно будет одного файла.
Назвать его рекомендую тоже говорящим именем, а лучше даже совпадающим с именем каталога.
Теперь мы имеем пустой php файл, находящийся по следующему пути: wp-content/plugins/new-plugin/new-plugin.php
Открыв этот файл, нам нужно добавить в него 2 вещи:
- Описание плагина;
- Код плагина.
Описание плагина
Описание плагина нужно для того, чтобы движок смог распознать его в системе. Именно после добавления описания этот плагин можно будет включить в админке.
Для личных плагинов достаточно минимального описания:
< ?php
/*
* Plugin Name: Новый плагин
*/
Для плагинов, которые планируется распространять (например разместив на WordPress.org), предусмотрены другие правила оформления описания, но это, пожалуй, тема для отдельной статьи.
Код плагина
Код плагина нужно писать сразу после описания, не закрывая при этом открытый php тэг.
Именно сюда нужно вставлять тот же код, который можно подставить в файл «functions.php».
Плагин или functions.php?
Как я говорил выше, код будет работать одинаково, но как же определиться как именно добавлять функционал?
Многие годы ходят слухи, что плагины нагружают систему, из-за чего напрашивается вывод в пользу файла functions.php.
Я считаю, что это миф. Если код один и тот же, то я не вижу поводов экономить на спичках — работать всё будет одинаково. То есть если код плохой, то он будет тормозить систему как из плагина, так и из файла шаблона.
Дополнительным аргументом может стать нежелание редактировать файлы темы.
Одно дело, когда речь идёт о WordPress теме, которую создал самостоятельно, и она заточена под определённый проект. Совсем же другое, когда приходится адаптировать чью-то чужую тему, которая при каждом обновлении будет затирать изменения.