Функция add_action()
является одной из ключевых в системе хуков WordPress, позволяя разработчикам добавлять свои собственные функции в определенные точки выполнения кода. Это мощный механизм, который делает WordPress гибким и расширяемым. В этой статье мы рассмотрим, как работает add_action()
, и приведем несколько примеров её использования.
add_action()
привязывает пользовательскую функцию к определенному действию (hook) WordPress. Когда это действие срабатывает, выполняется привязанная функция.
add_action( $hook, $function_to_add, $priority, $accepted_args );
$hook
(string) — Имя действия, к которому привязывается функция.$function_to_add
(callable) — Имя функции, которая будет выполнена.$priority
(int, необязательно) — Приоритет выполнения функции. По умолчанию значение равно 10. Меньшее значение приоритета означает, что функция будет выполнена раньше.$accepted_args
(int, необязательно) — Количество аргументов, которые принимает функция. По умолчанию значение равно 1.
Пример использования add_action()
Рассмотрим несколько примеров, которые показывают, как использовать add_action()
.
- Простое добавление действия
Добавим текст в нижний колонтитул (footer) сайта.
function add_footer_text() {
echo "<p>Thank you for visiting our site!</p>";
}
add_action('wp_footer', 'add_footer_text');
В этом примере функция add_footer_text()
будет выполнена при срабатывании хука wp_footer
, который вызывается перед закрывающим тегом </body>
в шаблоне WordPress.
- Добавление действия с приоритетом
Иногда нужно изменить порядок выполнения функций. Например, добавим два текста в footer с разным приоритетом.
function add_footer_text_1() {
echo "<p>First text.</p>";
}
function add_footer_text_2() {
echo "<p>Second text.</p>";
}
add_action('wp_footer', 'add_footer_text_1', 20);
add_action('wp_footer', 'add_footer_text_2', 10);
Функция add_footer_text_2()
выполнится первой, так как у нее приоритет ниже (10), чем у add_footer_text_1()
(20).
- Использование нескольких аргументов
Если действие передает несколько аргументов, укажите это количество в add_action()
.
function modify_title($title, $id) {
return "Modified: " . $title;
}
add_action('the_title', 'modify_title', 10, 2);
В этом примере функция modify_title()
принимает два аргумента: заголовок ($title
) и идентификатор записи ($id
).
Более сложные примеры использования
- Добавление действия в админ-панели
Добавим уведомление в админ-панель WordPress.
function admin_notice() {
echo "<div class='notice notice-success'><p>Custom admin notice.</p></div>";
}
add_action('admin_notices', 'admin_notice');
В этом примере функция admin_notice()
будет выполнена при срабатывании хука admin_notices
, который выводит уведомления в админ-панели.
- Добавление скриптов и стилей
Используем add_action()
для добавления пользовательских скриптов и стилей на сайт.
function custom_scripts() {
wp_enqueue_style('custom-style', get_stylesheet_uri() . '/custom-style.css');
wp_enqueue_script('custom-script', get_stylesheet_uri() . '/custom-script.js', array('jquery'), null, true);
}
add_action('wp_enqueue_scripts', 'custom_scripts');
Функция custom_scripts()
будет выполнена при срабатывании хука wp_enqueue_scripts
, который используется для правильного подключения скриптов и стилей в WordPress.
Заключение
Функция add_action()
является основным инструментом для расширения функциональности WordPress. Она позволяет разработчикам добавлять свои функции в различные точки выполнения кода, делая систему более гибкой и адаптируемой под конкретные нужды. Понимание того, как использовать add_action()
, является ключевым для создания мощных и расширяемых решений на платформе WordPress.