Создание хуков

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

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

Хуки можно отыскать в любой теме. Знакомые уже нам wp_head и wp_footer, находящиеся в файлах шаблона header.php и footer.php – не что иное как хуки. Они позволяют “подцеплять” произвольный материал к базовым функциям.

Разработка тем тесно связана с добавлением хуков. Проектировщики тем расставляют их в различных частях кода, позволяя разработчикам дочерних тем или простым пользователям изменять представление конкретной секции. С помощью хуков можно менять представление отдельных элементов, полностью удалять различные секции. Удобно создать для этого отдельную страницу в панели администратора, и предоставить пользователю полный контроль над всеми событиями.

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

Описание всех хуков можно найти на страницах кодекса: codex.wordpress.org/Plugin_API/Action_Reference.

Подключение хуков

Допустим, вы хотите подцепить к wp_footer код, выводящий какую-либо статистику. Делается это при помощи создания функции в файле functions.php, выполняющей описанные действия:

<?php
function my_webstats()
{ ?>
<script for your web statistics tracker />
<?php } ?>

Функция получила название my_webstats (). Сейчас в ней находится нерабочий скрипт, однако это не так важно, поскольку это всего лишь пример. Все, что нам потребуется далее – подцепить эту функцию к хуку wp_footer. Делается это при помощи функции add_action, которая должна находиться перед my_webstats ():

<?php
add_action('wp_footer', 'my_webstats');
function my_webstats()
{ ?>
<script code for your web statistics tracker />
<?php } ?>

Первый параметр add_action () – это название хука, к которому будет подцепляться заданная во втором параметре функция my_webstats.

Указанный участок кода должен быть размещен в файле functions.php.

Создание собственных хуков

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

Следующий код позволяет добавить хук к теме:

<?php do_action('the-name-of-the-function'); ?>

В качестве параметра ‘the-name-of-function’ необходимо указать название созданной функции. Если ваша функция называется, к примеру, welcome_text, то код будет выглядеть следующим образом:

<?php do_action('welcome_text'); ?>

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