Функция current_action()
в WordPress используется для получения имени текущего действия, которое выполняется в момент вызова этой функции. Это полезно для проверки того, какой хук выполняется, что позволяет разработчикам адаптировать логику своего кода в зависимости от контекста.
current_action(): string
Возвращаемое значение
Функция возвращает строку с именем текущего действия. Если в данный момент не выполняется ни одно действие, функция вернет пустую строку.
Пример 1: Получение имени текущего действия
В этом простом примере мы можем использовать current_action()
для вывода имени текущего действия в админке WordPress.
add_action('admin_init', function() {
$current_action = current_action();
echo '<p>Текущее действие: ' . esc_html($current_action) . '</p>';
});
Когда будет выполнено действие admin_init
, на экран будет выведено имя этого действия, что полезно для отладки или разработки.
Пример 2: Условная логика на основе текущего действия
В этом примере мы проверим, выполняется ли конкретное действие, и в зависимости от этого изменим поведение функции.
add_action('save_post', function($post_id) {
if (current_action() === 'save_post') {
// Логика, выполняемая только при сохранении поста
// Например, добавим мета-данные
update_post_meta($post_id, 'last_saved', current_time('mysql'));
}
});
Здесь мы используем current_action()
для проверки, что именно действие save_post
инициировало выполнение кода, и только тогда обновляем мета-данные поста.
Пример 3: Взаимодействие с несколькими хуками
Функция current_action()
также может быть использована в случаях, когда один и тот же обработчик привязан к нескольким хукам. В этом примере мы изменим поведение функции в зависимости от того, какой хук вызван.
add_action('wp_footer', 'custom_footer_message');
add_action('wp_head', 'custom_footer_message');
function custom_footer_message() {
if (current_action() === 'wp_footer') {
echo '<p>Это сообщение в подвале страницы.</p>';
} elseif (current_action() === 'wp_head') {
echo '<p>Это сообщение в заголовке страницы.</p>';
}
}
В этом примере, когда выполняется действие wp_footer
, будет выведено сообщение о том, что это подвал страницы. Если вызывается wp_head
, будет выведено другое сообщение. Это позволяет разработчикам легко управлять поведением на разных этапах загрузки страницы.
Заключение
Функция current_action()
— это мощный инструмент для работы с хуками в WordPress. Она позволяет легко определять, какое действие выполняется в данный момент, и адаптировать логику кода соответственно. Используйте current_action()
для создания более гибкого и контекстно осведомленного кода в ваших плагинах и темах.