Апрель
19
2011

WordPress хуки

WordPress хуки

Ранее я описал в каком порядке вызываются файлы в WordPress и куда можно вставлять свой код. Суть в том, что вставлять нужно не просто исполняемый код, а объявлять свою функцию, которая будет вызвана в определенных условиях. Все хуки в WordPress делятся на action и filter.

В этой статье рассказано как заставить WordPress вызывать ваш код при определенных событиях.

Основная разница между action и filter в том, что фильтры манипулируют данными (выводимым на экран или записываемым в базу), а действия всем остальным.

Action Hooks

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

Для добавления своего хука необходимо:

  1. Объявить функцию
  2. Привязать эту функцию к событию при помощи функции add_action();
  3. Вставить этот код в свой плагин, либо functions.php

Объявление функции

Как объявлять функции в PHP рассказывать не стоит, важно помнить два момента:

  1. Входные параметры функции зависят от события, к которому мы ее привязываем
  2. Нельзя использовать имена уже объявленных функций

Привязка к событию

Теперь нужно уведомить WordPress, что он должен вызвать вашу функцию в определенный момент. Для этого есть функция add_action();

<?php add_action ( 'событие', 'Функция', [приоритет], [аргументы] ); ?>

Событие

Определенное событие WordPress.(обязательный параметр)

Функция

Функция, которую необходимо вызвать. Это может быть написанная вами функция, функция WordPress или стандартная функция PHP.(обязательный параметр)

Приоритет

Очередность, в которой вызываются функции. Стандартное значение 10. Чем ниже число, тем раньше вызывается функция. Функции с одинаковым приоритетом вызываются в порядке привязки к событию. (необязательный паарметр)

Аргументы

Указывает количество аргументов, которое может быть передано в функцию. Стандартное значение 1. (необязательный параметр)

Еще можно удалять привязку функций к событиям.

Активация кода

Самый простой способ это вставить полученный код в файл functions.php вашей темы.

Более сложный, но правильный путь — создать файл и положить его в директорию к плагинам. Заходим в админке в управление плагинами и активируем.

Filter Hooks

Фильтры, это такие функции, которые изменяют данные в процессе ввода-вывода. Отличие от действий в том, что фильтр должен принимать в качестве параметра данные и в конце обязательно возвращать данные (либо возвращать NULL, как указание на необходимость удаления данных).

Действие по созданию похожи:

  1. Объявить функцию
  2. Привязать функцию к событию, вызвав add_filter()
  3. Добавить этот код в WordPress

Объявление функции фильтра

Общие рекомендации как и в случае с действиями, но есть важное отличие. Функция обязательно должна принимать и возвращать данные. Даже если фильтр ничего не сделал с данными, то он все равно обязан возвратить исходные данные. Если данные следует удалить, то функция должна возвращать NULL.

Привязка к событию

Для этого необходимо вызвать такую конструкцию

<?php add_filter( 'событие', 'функция', [приоритет], [аргументы] ); ?>

Событие

Определенное событие WordPress. (обязательный параметр)

Функция

Функция, которую необходимо вызвать. Это может быть написанная вами функция, функция WordPress или стандартная функция PHP. (обязательный параметр)

Приоритет

Очередность, в которой вызываются функции. Стандартное значение 10. Чем ниже число, тем раньше вызывается функция. Функции с одинаковым приоритетом вызываются в порядке привязки к событию. (необязательный паарметр)

Аргументы

Указывает количество аргументов, которое может быть передано в функцию. Стандартное значение 1. (необязательный параметр)

Активация кода

Самый простой способ это вставить полученный код в файл functions.php вашей темы.

Более сложный, но правильный путь — создать файл и положить его в директорию к плагинам. Заходим в админке в управление плагинами и активируем.

Удаление привязок

Если вы хотите удалить привязку функции к событию, то необходимо вызвать функцию remove_filter(‘filter_hook’,’filter_function’) или remove_action(‘action_hook’,’action_function’). Если приоритет при привязке был указан, то его следует указывать и при удалении.

Удалять нужно после добавления (что логично), так что лучше всего удалять ассоциации в конце файла functions.php активной темы.

Как говорится «далі буде», следите за новыми статьями.

Неправильная раскладка: цщквзкуыы [erb

Понравилась статья? Посоветуйте друзьям!

PHP Tutorial WordPress WP Plugin


Понравилась статья? Подпишись на рассылку по E-Mail или в RSS.