delete_post_meta_by_key()
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.
Uses: delete_metadata()
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
#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' );
#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() 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 );
}