remove_action()

Удаляет функцию обратного вызова из хука действия
Функция WordPress
INT 1.2.0
WordPress Icon

Описание функции

Функция remove_action() удаляет заданную функцию обратного вызова из указанного хука действия в WordPress.

Хуки действия в WordPress позволяют вам выполнять определенные действия в определенные моменты времени во время выполнения запроса. Функция обратного вызова, добавленная с помощью add_action(), выполняется при срабатывании указанного хука действия. remove_action() позволяет удалить ранее добавленную функцию обратного вызова из хука действия.

Использование

remove_action( string $hook_name, callable|string|array $callback, int $priority = 10 ): bool;

Функция remove_action() принимает три обязательных параметра и один необязательный параметр:

  • $hook_name (строка, обязательный): Название хука действия, из которого нужно удалить функцию обратного вызова.
  • $callback (callable|string|array, обязательный): Имя функции, которую нужно удалить. Эта функция может быть вызвана безусловно для спекулятивного удаления функции обратного вызова, которая может существовать или не существовать.
  • $priority (целое число, необязательный): Точный приоритет, использованный при добавлении исходного обратного вызова хука действия. По умолчанию: 10.

Функция возвращает логическое значение true, если функция обратного вызова успешно удалена из указанного хука действия, и false в противном случае.

<?php
/**
 * Удаляет функцию обратного вызова 'my_function' из хука действия 'wp_footer' с приоритетом 10.
 */
remove_action( 'wp_footer', 'my_function', 10 );
?>

В приведенном выше примере кода функция обратного вызова ‘my_function’ будет удалена из хука действия ‘wp_footer’ с приоритетом 10.

Примеры использования

Удаление функции-обработчика с хука действия


// Удаляем функцию-обработчик 'my_function' с хука действия 'wp_head'
remove_action( 'wp_head', 'my_function' );

В данном примере мы удаляем функцию-обработчик ‘my_function’ с хука действия ‘wp_head’. Это означает, что при срабатывании хука ‘wp_head’ функция ‘my_function’ больше не будет вызываться.

Отмена выполнения функции-обработчика при срабатывании хука


// Отменяем выполнение функции-обработчика 'my_function' при срабатывании хука 'wp_footer'
remove_action( 'wp_footer', 'my_function' );

В этом примере мы отменяем выполнение функции-обработчика ‘my_function’ при срабатывании хука ‘wp_footer’. То есть, функция ‘my_function’ больше не будет вызываться при срабатывании данного хука.

Исключение функции-обработчика из списка вызовов хука


// Исключаем функцию-обработчик 'my_function' из списка вызовов хука 'wp_enqueue_scripts'
remove_action( 'wp_enqueue_scripts', 'my_function' );

В данном примере мы исключаем функцию-обработчик ‘my_function’ из списка вызовов хука ‘wp_enqueue_scripts’. Это означает, что функция ‘my_function’ больше не будет вызываться при срабатывании данного хука.

Отключение функции-обработчика от определенного хука


// Отключаем функцию-обработчик 'my_function' от хука 'init'
remove_action( 'init', 'my_function' );

В этом примере мы отключаем функцию-обработчик ‘my_function’ от хука ‘init’. То есть, функция ‘my_function’ больше не будет вызываться при срабатывании данного хука.

Удаление функции-обработчика с приоритетом


// Удаляем функцию-обработчик 'my_function' с хука действия 'wp_head' с приоритетом 20
remove_action( 'wp_head', 'my_function', 20 );

В данном примере мы удаляем функцию-обработчик ‘my_function’ с хука действия ‘wp_head’ с приоритетом 20. Это означает, что функция ‘my_function’ с приоритетом 20 больше не будет вызываться при срабатывании хука ‘wp_head’.

Отмена регистрации функции-обработчика на хуке


// Отменяем регистрацию функции-обработчика 'my_function' на хуке 'wp_footer'
remove_action( 'wp_footer', 'my_function' );

В этом примере мы отменяем регистрацию функции-обработчика ‘my_function’ на хуке ‘wp_footer’. То есть, функция ‘my_function’ больше не будет вызываться при срабатывании данного хука.

Вопросы и ответы

Как удалить функцию из хука?

Для удаления функции из хука в WordPress используется функция remove_action(). Она принимает три параметра:

  • $hook_name — строка, обязательный параметр, указывающий на название хука, из которого нужно удалить функцию.
  • $callback — callable|string|array, обязательный параметр, указывающий на имя функции, которую нужно удалить. Эта функция может быть вызвана безусловно для спекулятивного удаления функции, которая может существовать или не существовать.
  • $priority — int, необязательный параметр, указывающий на приоритет, с которым была добавлена исходная функция. По умолчанию равен 10.

Пример использования функции remove_action():


remove_action( 'wp_head', 'my_function' );

В данном примере функция my_function будет удалена из хука wp_head.

Как узнать, была ли функция успешно удалена из хука?

Функция remove_action() возвращает булево значение, указывающее, была ли функция успешно удалена из хука. Если функция была удалена, то возвращается true, в противном случае — false.

Пример использования функции remove_action() с проверкой успешного удаления:


if ( remove_action( 'wp_head', 'my_function' ) ) {
  echo 'Функция успешно удалена из хука.';
} else {
  echo 'Функция не была найдена в хуке.';
}

Можно ли удалить функцию с определенным приоритетом?

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

Пример использования функции remove_action() для удаления функции с определенным приоритетом:


remove_action( 'wp_head', 'my_function', 20 );

В данном примере функция my_function с приоритетом 20 будет удалена из хука wp_head.

Можно ли удалить несколько функций из одного хука?

Да, функция remove_action() позволяет удалить несколько функций из одного хука. Для этого необходимо вызвать функцию remove_action() для каждой функции, которую нужно удалить.

Что произойдет, если попытаться удалить несуществующую функцию из хука?

Если попытаться удалить несуществующую функцию из хука с помощью функции remove_action(), то ничего не произойдет. Функция вернет значение false, указывая на то, что функция не была удалена.

Можно ли удалить функцию из хука, если она была добавлена в теме?

Да, функция remove_action() позволяет удалить функцию из хука, даже если она была добавлена в теме. Для этого необходимо вызвать функцию remove_action() с указанием имени хука и имени функции, которую нужно удалить.


// Пример удаления функции из хука
remove_action( 'wp_head', 'my_function' );

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

Связанные элементы

  • Функция add_action(): регистрирует функцию для выполнения при определенном хуке.
  • Функция do_action(): запускает все функции, привязанные к определенному хуку.
  • Функция has_action(): проверяет, зарегистрирована ли функция для выполнения при определенном хуке.
  • Функция did_action(): возвращает количество раз, которое хук был запущен.
  • Функция current_action(): возвращает имя текущего хука, который выполняется.
  • Хук init: срабатывает при инициализации WordPress и используется для регистрации функций и действий.
  • Класс WP_Hook: представляет собой контейнер для хуков и их функций.
Обсуждение