В случае успешного удаления возвращает true
, если же таких метаданных в базе данных не существует, или указанного сайта не существует, то false
.
delete_site_meta( $blog_id, $meta_key, $meta_value = '' )
Параметры
- $blog_id
- (целое число) Укажите ID сайта сети WordPress Мультисайт
- $meta_key
- (строка) Ключ, под которым эти данные хранятся в базе данных (в таблице
wp_blogmeta
между прочим) - $meta_value
- (строка|сериализованный массив) Если вам нужно удалять мета только с определённым значением, то можете указать значение в этом параметре.
Примеры
Допустим, сейчас содержимое нашей таблицы wp_blogmeta
выглядит так:
Теперь, если мы заюзаем следующий код:
delete_site_meta( 4, 'language' );
То наша таблица после использования кода станет выглядеть вот так:
Конечно же я не имею ввиду цвет заголовков таблицы, это я так заскринил 😁
Ещё вы можете подумать – какой смысл указывать третий параметр функции 🤔 Дело в том, что для одного и того же сайта и одного и того же ключа может быть несколько значений метаданных (несколько записей в таблице).
Кроме того, вы могли заметить на скриншоте, что ключ language есть у нескольких сайтов. Как удалить их все?
Хм, может так?
delete_site_meta( 2, 'language' ); delete_site_meta( 4, 'language' );
Но, что, если сайтов много и мы не собираемся статично указывать их ID? Тогда нужно получить сайты в цикле, функция get_sites() для этого вполне подойдёт.
$blogs = get_sites( array( 'fields' => 'ids' ) ); foreach( $blogs as $blog_id ) { delete_site_meta( $site_id, 'language' ); }