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.7.1
function delete_post_meta_by_key( $post_meta_key ) { return delete_metadata( 'post', null, $post_meta_key, '', true ); }