delete_metadata()
Видаляє метадані зазначеного об’єкта (пост, користувач, коментар).
Функція викликає фільтр delete_(meta_type)_meta , перед видаленням даних та фільтр deleted_(meta_type)_meta після видалення даних.
Основа для:
delete_post_meta_by_key() ,
delete_term_meta() ,
delete_comment_meta() ,
delete_user_meta() ,
delete_post_meta()
delete_post_meta_by_key() ,
delete_term_meta() ,
delete_comment_meta() ,
delete_user_meta() ,
delete_post_meta()
Хуки з функції
Повертає
true|false
. true, якщо видалити метадані або false.
Використання
delete_metadata( $meta_type, $object_id, $meta_key, $meta_value, $delete_all );
-
$meta_type
(рядок) (обов’язковий) -
Тип об’єкта, з яким буде працювати функція. Наприклад:
post
,
user
,
comment
,
term
. -
$object_id
(число) (обов’язковий) - ID об’єкті, метадані якого потрібно видалити. Наприклад ID посту.
-
$meta_key
(рядок) (обов’язковий) - Назва ключа метаданих, які потрібно видалити. Наприклад: ключ довільного поля запису “title”.
-
$meta_value
(рядок/масив/число/об’єкт/логічний) -
Якщо вказати це значення, то функція спробує знайти та видалити метадані із зазначеним тут значенням, коли в одного об’єкта зберігаються різні метадані з однаковими ключами. Наприклад, у посту 5 є довільні поля: title=значення 1 і title=значення 2, нам потрібно видалити “значення 2”, вказуємо його в цей параметр.
За замовчуванням: ” -
$delete_all
(логічний) -
Якщо вказати цей параметр у true, то функція проігнорує параметр $object_id і видалить зазначені метадані у всіх об’єктів. За промовчанням false – метадані видаляються лише у зазначеного об’єкта.
Типово: false
Приклади
#1 Видалимо довільне поле посту
Видалимо довільне поле з ключем “title” біля посту 25:
delete_metadata('post', 25, "title");
#2 функція delete_post_meta()
Код функції файлу /wp-includes/post.php:
function delete_post_meta( $post_id, $meta_key, $meta_value = '' ) {
// Make sure meta is added to the post, немає revision.
if ( $the_post = wp_is_post_revision($post_id) )
$post_id = $the_post;
return delete_metadata('post', $post_id, $meta_key, $meta_value);
}
#3 Видалимо всі метаполі з усієї БД
Цей код показує як видалити всі метаполі всіх користувачів із зазначеним ключем:
$meta_key = 'is_collapsed_menu';
$deleted = delete_metadata( 'user', '', $meta_key, '', true );
// $deleted буде містити кількість видалених рядків
нотатки
- Global. wpdb. $wpdb WordPress database abstraction object.
список змін
З версії 2.9.0 | Введено. |