delete_post_meta_by_key()WP 2.3.0

Удаляет все метаполя (произвольные поля) всех постов по указанному ключу метаполя.

Эту функцию часто используют при удалении плагина или при апргрейте, когда, например, изменилась логика и метаполе уже не используется в коде.

Используйт 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.

Примеры

0

#1 Удаление всех метаполей по названию метаполя

Удалим все произвольные поля с ключом en_translation у всех постов:

delete_post_meta_by_key( 'en_translation' );
0

#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() WP 6.7.1

function delete_post_meta_by_key( $post_meta_key ) {
	return delete_metadata( 'post', null, $post_meta_key, '', true );
}