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

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

От автора: приветствую вас, друзья. Если вы уже можете создавать темы для WordPress и достаточно уверенно программируете на PHP, тогда вас уже может заинтересовать переход на следующий уровень, может заинтересовать такой вопрос, как создание плагина для WordPress. Данная статья призвана дать общее понимание того, как создать плагин для WordPress.

WordPress разработка плагина

Для начала давайте определимся с тем, что такое плагин относительно WordPress и для чего нужны плагины. Плагин — это ни что иное, как расширение для WordPress, которое предоставляет для сайта дополнительный функционал, например: симпатичная галерея, вывод похожих записей, организация голосования на сайте, рейтинг статей и т.д. и т.п. Расширение это, т.е. плагин, взаимодействует с ядром WordPress благодаря API WordPress.

Плагинов для WordPress написано тысячи. Только в официальном репозитории на сегодняшний день находится более 40 тысяч плагинов.

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

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

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

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

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

В этой части статьи давайте поговорим об общих принципах создания плагинов. Все плагины размещаются в папке \wp-content\plugins\. Давайте создадим здесь папку и постараемся ей дать название, отражающее суть плагина, который вы будете писать. В качестве примера мы будем писать плагин, добавляющий подпись к статьям, поэтому я назову папку wfm-sign. Поскольку слово sign (или любое другое значимое слово) вполне может использоваться в других плагинах, хорошей практикой считается добавлять к названиям файлов, папок, функций, переменных и т.д. определенного префикса. Например, я использую префикс wfm, чтобы избежать возможных конфликтов с другими расширениями.

Итак, создадим папку и добавим в нее одноименный файл — wfm-sign.php. Это будет главный файл плагина. Файл можно назвать и index.php, но мне привычнее называть его по имени папки. Если ваш плагин предполагает наличие файлов стилей, клиентских скриптов или картинок, то под них лучше создать соответствующие папки внутри папки плагина.

Идем дальше. Для того, чтобы WordPress работал с нашим расширением, в главном файле плагина необходимо добавить соответствующий заголовок, примерно так же, как это делается в файле стилей темы. По большому счету достаточно вписать только название плагина — Plugin Name. Но можно вписать и дополнительные данные: автора, версию и т.п.

Обратите внимание на то, что кодировка файла должна быть UTF-8 без BOM, только в этом случае кириллические символы будут отображаться корректно на сайте. После сохранения файла мы должны увидеть новый плагин в списке доступных и можем даже активировать его.

Пока что наш плагин не выполняет никакой полезной работы. Давайте добавим ему необходимую функциональность. Как вы помните, выше я говорил о том, что взаимодействие плагина с ядром WordPress осуществляется благодаря API WordPress. В частности, взаимодействовать с ядром мы можем благодаря механизму зацепок или хуков (hook — с англ. «крючок», «зацепка»).

Для решения задачи нам потребуется хук the_content, к которому мы прицепим собственную функцию. Сделать это можно с помощью специальной функции add_filter. Фактически мы добавим к функции the_content собственную функцию-фильтр. Итоговый код главного файла плагина будет выглядеть так:

<?php
/*
Plugin Name: Подпись для статей
Description: Описание плагина
Version: 1.0
Author: Автор плагина
Author URI: http://webformyself.com
*/

add_filter( 'the_content', 'wfm_sign_content' );

function wfm_sign_content($content){
	if( !is_single() ) return $content;
	$wfm_sign = '<div class="alignright"><em>Подпись к статье, добавленная плагином...</em></div>';
	return $content . $wfm_sign;
}

Наша функция wfm_sign_content принимает в качестве параметра контент поста. Далее мы проверяем, просматривается ли полный текст статьи и, если это не так (если функция is_single вернет false), тогда мы просто вернем контент. В другом случае — вернем контент, к которому добавим нужную подпись.

Собственно, простейший вариант плагина готов. При этом мы разработали плагин, который будет работать для любой темы, т.е. мы получили универсальное решение. Если вас заинтересовала тема создания плагинов для WordPress, тогда предлагаю вам наш курс по изучению API WordPress и созданию плагинов для WordPress. Ну а на этом я с вами прощаюсь. Удачи!

Интернет-магазин на WordPress

Прямо сейчас посмотрите курс по созданию интернет-магазина на WordPress!

Смотреть курс

Метки: , ,

Комментарии Вконтакте:

Комментарии Facebook:

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

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

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Я не робот.

Spam Protection by WP-SpamFree