Using WordPress ‘delete_post_meta_by_key()’ PHP function

The delete_post_meta_by_key() WordPress PHP function deletes everything from post meta matching the given meta key.


To use the delete_post_meta_by_key() function, simply pass the post meta key as a string to the function. Here’s an example:


In this example, ‘your_meta_key’ is the meta key for the data you want to delete. This will delete all post meta data that matches ‘your_meta_key’.


  • $post_meta_key (string) – The key to search for when deleting post meta data.

More information

See WordPress Developer Resources: delete_post_meta_by_key()

This function is used to delete all instances of a specific meta key from the database. Be careful when using it, as it can delete a large amount of data if not used properly.


Deleting a Specific Meta Key

In this example, we’re deleting all post meta data with the key ‘special_offer’:


This will remove any post meta data that has the key ‘special_offer’.

Deleting Multiple Meta Keys

If you want to delete multiple meta keys, you can do so by calling the function multiple times:


This will delete all post meta data with the keys ‘special_offer’ and ‘limited_time_offer’.

Deleting Meta Keys within a Function

You can also use this function within another function to perform a bulk delete:

function clear_promotional_meta() {


In this example, the clear_promotional_meta() function will delete all post meta data with the keys ‘special_offer’ and ‘limited_time_offer’.

Using Meta Keys from Variables

You can also delete meta keys from variables:

$meta_key = 'special_offer';


In this example, the ‘special_offer’ meta key is stored in the $meta_key variable.

Deleting Meta Keys in a Loop

If you have an array of meta keys, you can loop through them and delete each one:

$meta_keys = ['special_offer', 'limited_time_offer', 'sale'];

foreach ($meta_keys as $key) {

This will delete all post meta data with the keys ‘special_offer’, ‘limited_time_offer’, and ‘sale’.