delete_site_meta() – удаляет метаданные сайта сети мультисайт

Владислав Белецкий
Владислав Белецкий .
Категория:
Комментариев: 0

В случае успешного удаления возвращает 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' );
}
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии