delete_option() – функция удаляет опцию из базы данных

Позволяет удалить определённую опцию из базы данных по её ключу, если удаление прошло успешно, возвращает true, если же нет – false (например опции с указанным ключом не существует или же вообще в качестве значение $option была передана пустая строка).

delete_option( $option )

Параметры

$option
(строка) Название (ключ) опции, которую нужно удалить

Пример

В этом примере, в описании функции add_option(), мы добавляли какую-то произвольную опцию в базу данных, я назвал её true_option (естественно). Давайте теперь попробуем её удалить.

Пример работы функции add_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' );
	}
}

Источник: Блог Миши Рудрастых

Миша Рудрастых

Путешествует по миру и рассказывает всем о WordPress лично, у себя в блогах и на курсах в Санкт-Петербурге. Умеет просто объяснять сложные вещи, делает это красиво. Организовывает неплохие WordCamp's, но совсем не умеет слушать чужие доклады.

Добавить комментарий

%d такие блоггеры, как: