delete_post_meta_by_key()
Удаляет все метаполя (произвольные поля) всех постов по указанному ключу метаполя.
Эту функцию часто используют при удалении плагина или при апргрейте, когда, например, изменилась логика и метаполе уже не используется в коде.
Используйт delete_post_meta(), когда нужно удалить метаполя только у одного поста, а не у всех.
Работает на основе: delete_metadata()
Хуков нет.
Возвращает
true|false. Whether the post meta key was deleted from the database.
Использование
delete_post_meta_by_key( $post_meta_key );
- $post_meta_key(строка) (обязательный)
- Ключ кастомного поля (мета-поля), по которому будут удалены все метаполя из таблицы
wp_postmeta.
Примеры
#1 Удаление всех метаполей по названию метаполя
Удалим все произвольные поля с ключом en_translation у всех постов:
delete_post_meta_by_key( 'en_translation' );
#2 Удаление сразу нескольких старых метаполей
// Удалить старые мета данные постов.
$meta_keys = [
'_fl_builder_layout',
'_fl_builder_layout_export',
'_fl_builder_css',
];
foreach( $meta_keys as $meta_key ){
delete_post_meta_by_key( $meta_key );
}
Список изменений
| С версии 2.3.0 | Введена. |
Код delete_post_meta_by_key() delete post meta by key WP 6.9
function delete_post_meta_by_key( $post_meta_key ) {
return delete_metadata( 'post', null, $post_meta_key, '', true );
}