Главная / WP Экспресс / Как создать плагин WordPress
Как создать плагин WordPress

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

Приветствую. Если вы уже продолжительное время используете WordPress, то наверняка пробовали или по крайней мере, читали чужие советы и задумывались о том, что бы добавить собственный код в файл functions.php Однако, вставленные кусок кода так им и останется, со всеми вытекающими последствиями (см ниже). Во многих случаях будет лучше написать собственный плагин, чем просто добавить код в файл functions.php Сегодня будем учиться создавать плагины, ведь на самом деле, это гораздо проще чем вы думаете.

Когда стоит написать собственный плагин?

Да, иногда можно использовать functions.php, когда вам нужно добавить совсем простую функциональность, которая перекликается с отображением контента, к примеру, так можно добавить дополнительные шрифты. Такие изменения разумеется пропадут, если вы сделаете обновление темы.

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

Что понадобится для написания плагина?

Чтоб написать плагин, вам нужно создать файл плагина и добавить в него код, а затем активировать его тем или иным способом. Каждый плагин имеет открывающий код, который закомментирован. А затем уже идет сам код плагина. Если плагин у вас более сложный, или вы хотите разделить его элементы, то вам нужно создать вложенные файлы – дополнительные PHP-файлы, которые вы свяжете с главным файлом плагина. Вы также можете захотеть включить страницы стилей и дополнительные скрипты в ваш плагин. Как сделать все это будет описано ниже.

Вот несколько способов активировать ваш плагин:

С помощью функции

Ваш плагин создает функцию, которую вы потом добавляете в вашу тему туда, где нужно вызвать код внутри функции.

С помощью хука действия (action hook)

WordPress использует сотни «крючков» действий, которые вы можете использовать для вызова кода в функциях, которые вы прописали в своем плагине. Ели ваша тема имеет «крючок» действия, вы можете написать функцию, которую вы потом прикрепите к этому «крючку». Код в вашем плагине будет запущен, когда WordPress загрузит этот «крючок».

С помощью фильтер хука (filter hook)

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

С помощью шорткода

Ваш плагин может создать шорткод, который затем можно добавить в ваши записи или страницы.

С помощью виджета

Если ваш плагин создает виджет, вы можете активировать его, добавив в виджет-область.

Вступление для плагина

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

Вам нужно отредактировать код сверху, добавив вашу собственную информацию.

Сохраните плагин, и он появится на привычной странице с вашими плагинами, где вы сможете его активировать.

Create a WordPress Plugin 1

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

Написать функцию для вашего плагина

Самое простое, что вы сможете сделать с плагином, это написать функцию. Затем вы можете вывести функцию, используя хук или напечатав название функции в вашей теме. Скажем, вы хотите создать функцию для кнопки призыва к действию, а затем вывести эту кнопку в разных местах вашей темы.

Функция для этой кнопки выглядит вот так:

Выше я использовал echo для вызова HTML внутри моей PHP –функции. Если вы хотите добавить много HTML внутри функции и не хотите использовать echo так много, вы можете добавить открывающий и закрывающий PHP-теги внутри вашей функции, вместо этого.

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

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

Активация функции с помощью хука

Есть альтернатива тому, чтоб прописывать вашу функцию в файлах шаблона вашей темы каждый раз, когда вы хотите использовать эту функцию. Если у вашей темы есть хуки, вы можете прицепить вашу функцию к одному или нескольким таким хукам «крючкам». Или вы можете использовать один из хуков, которые предоставляет сам WordPress или плагин, который вы уже активировали.

Если вы хотите узнать, есть ли у вашей темы хук действия, посмотрите в сайдбаре, который называется mytheme_sidebar, вы сможете прицепить свою функцию к нему, используя функцию add_action():

Функция add_action() имеет два обязательных  параметра: Хук, к которому прикрепляется функция, и название функции. Есть также третий опциональный параметр, который представляет приоритетность, согласно которой будет проигрываться ваша функция. Используется, если вы хотите запустить функцию после или перед какой-то другой.

Вы можете прицепить вашу функцию к такому количеству крючков, какому вам хочется. Так что если вы хотите добавить вашу кнопку призыва к действию в сайдбаре, под контентом в вашей теме, используйте крючок mytheme_below_content, как это показано ниже:

Если вы хотите зацепить код одним из тех хуков, которые предоставляет WordPress, это делается совершенно также. Пример – это создание плагина, который добавляет код Google analytics на ваш сайт, и зацепляется за хук wp_head.

Добавление кода с помощью фильтра работает совершенно также, за исключением того, что вы используете функцию add_filter(). Так что если блок с контентом призыва к действию уже добавлен в тему с использованием фильтра, нужно перезаписать все вот так:

Написание плагина для шорткода

Если плагин создает шорткод, вы не проигрываете код, который он предоставляет, используя хук или добавив функцию в файл шаблона вашей темы. Вместо этого вы вставляете шорткод прямо в контент ваших записей.

Так, если вы хотите создать шорткод для кнопки призыва к действию, то нужно записать эту функцию в наш плагин:

Здесь уже есть код, который мы уже добавили в функцию, с помощью функций ob_start() и ob_get_clean(). Это позволяет убедиться в том, что HTML в вашем шорткоде выводится в том месте вашего контента, куда вы его добавили: без этого все будет выводится в верхней части экрана.

Функция активируется с помощью функции add_shortcode(), которая является частью Shortcodes API. Функция имеет два параметра: первый – текст нужно будет заключить в квадратные скобки, чтоб шорткод начал работать, и второй – название вашей функции. Так что, чтоб добавить кнопку призыва к действию в контент вашего сайта, впечатайте [CTA].

Написание плагина для виджета

Последний способ активировать код в вашем плагине – это использовать виджет. Теперь же давайте перейдем от активации к добавлению файлов в ваш плагин.

Включение файлов в плагин

Если ваш плагин нуждается в таких добавлениях, как страницы стилей и скрипты или что-то более серьезное, или вы хотите разделить код на блоки, которыми проще управлять, хорошая идея добавить файлы. В этом случае вам нужно положить главный файл плагина в папку в вашей директории wp-content/plugins, вместо того, чтоб класть его прямо в директорию. Ваш файл плагина будет выглядеть точно также, и WordPress сможет найти его.

Мои плагины обычно содержат одну или больше таких папок, включая:

  • includes
  • styles
  • scripts

Включенный файл – это PHP-файл в вашем плагине, который вы хотите держать отдельно от главного файла плагина, с папкой стилей, включающей страницы стилей для оформления кода, который выводится вашим плагином, и папку со скриптами, которая содержит JavaScript, нужные вашему плагину.

Включение PHP-файлов

Чтоб включить дополнительные PHP-файлы, добавьте этот код в самое начало плагина, после открывающего комментария, но перед вашей первой функцией.

Это будет добавлено в ваш код из включенного файла в нужном месте вашего плагина там, где вы добавили вашу функцию. В некоторых ваших плагинах вы можете захотеть добавить весь ваш код именно в виде включенных файлов, а в главный файл плагина нужно будет добавить только эту функцию include_once.

Вызов страниц стилей

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

Если вы вставите этот код в главный файл плагина, страница стилей будет вызываться посредством вызова файла style.css, который находится в папке wp-content/plugins/myplugin/styles. Может вам покажется странным, прицеплять функцию к экшену, который называется enqueue_scripts, но это правильное действие, если дело касается страниц стилей и всех других скриптов.

Вызов скриптов

Вы можете вызывать скрипты практически так же,  как и страницы стилей, используя хук enqueue_scripts. Так что если вы хотите добавить скрипт, чтоб анимировать вашу кнопку призыва к действию, вам нужно будет вызвать его в плагине вот так:

Это очень сходно с функцией, которую мы уже использовали для страницы стилей, но в функцию register_script() я также добавил третий параметр, которым является JavaScript library (jQuery) и от которого зависит мой скрипт. Проще говоря, если jQuery не активирован, то ничего не будет работать.

Как видите, ничего особо заумного при создании плагина не используется. Во всяком случае, в нашем — простом примере. Надеемся и вы захотите попробовать создать собственный плагин.

Источник

Интересное по теме:

Создание виджета с таймером обратного отсчета времени
Как создать виджет с табами для WordPress?

Тоже интересно!

Meta Box — добавление кастомных полей

Привет читателям, у нас сегодня обзор полезнейшего плагина Meta Box. Meta Box сегодня — это …

Один комментарий

  1. Отличный перевод, спасибо. В рунете так мало инфы по написанию плагинов… Если будет время, напишите небольшую статью-обзор на фреймворк WORDPRESS PLUGIN BOILERPLATE и как им пользоваться!

    Спасибо, за статью.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *