delete_post_meta_by_key()WP 2.3.0

Deletes all meta-fields (custom fields) of all posts by the specified meta-field key.

This function is often used when deleting a plugin or during an upgrade when, for example, the logic has changed and the meta-field is no longer used in the code.

Use delete_post_meta() when you need to delete meta-fields only for one post, not for all.

No Hooks.

Returns

true|false. Whether the post meta key was deleted from the database.

Usage

delete_post_meta_by_key( $post_meta_key );
$post_meta_key(string) (required)
The key of the custom field (meta-field) for which all meta-fields will be deleted from the table wp_postmeta.

Examples

0

#1 Removing all meta fields by meta field name

We will delete all custom fields with the key en_translation from all posts:

delete_post_meta_by_key( 'en_translation' );
0

#2 Removing multiple old meta fields at once

// Delete old post meta data.

$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 );   
}

Changelog

Since 2.3.0 Introduced.

delete_post_meta_by_key() code WP 6.9

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