Позволяет удалить определённую опцию из базы данных по её ключу, если удаление прошло успешно, возвращает true
, если же нет – false
(например опции с указанным ключом не существует или же вообще в качестве значение $option
была передана пустая строка).
delete_option( $option )
Параметры
- $option
- (строка) Название (ключ) опции, которую нужно удалить
Пример
В этом примере, в описании функции add_option(), мы добавляли какую-то произвольную опцию в базу данных, я назвал её true_option
(естественно). Давайте теперь попробуем её удалить.
delete_option( 'true_option' );
Всё, после выполнения этой строчки кода опция будет удалена.
Хуки
Внутри функции есть несколько хуков, которые позволят сделать какие-то дополнительные действия во время удаления опции.
delete_option
Хук позволяет выполнить какую-либо произвольную функцию непосредственно перед удалением опции из базы данных. Хук не выполнится, если мы пытаемся удалить защищённую опцию, либо если опции с указанным ключом не существует.
do_action( 'delete_option', $option );
- $option
- (строка) Название опции.
Добавлен в WordPress 2.9.0.
delete_option_{$option}
Срабатывает после удаления определённой опции, т.е. опции, ключ которой является частью названия данного хука.
do_action( "delete_option_{$option}", $option );
- $option
- (строка) Название опции.
В одном из примеров, в описании хуков функции add_option() я написал функцию, которая автоматически добавляет вторую опцию в базу данных при добавлении опции с определённым ключом и значением. Предлагаю, используя хук delete_option_{$option}
, написать функцию, которая будет выполнять обратное действие.
add_action( 'delete_option_true_option', 'true_remove_2_options', 25 ); function true_remove_2_options( $option ) { delete_option( 'true_option_2' ); }
deleted_option
Хук практически полностью идентичен хуку delete_option_{$option} и срабатывает сразу после него, единственное исключение, что в названии хука не присутствует название добавляемой опции.
do_action( 'deleted_option', $option );
Попробуем переделать предыдущий пример под этот хук.
add_action( 'deleted_option', 'true_remove_2_options', 25 ); function true_remove_2_options( $option ) { if( 'true_option' === $option ) { delete_option( 'true_option_2' ); } }