A WordPress-centric search engine for devs and theme authors

delete_post_meta › WordPress Function

delete_post_meta ( $post_id, $meta_key, $meta_value = '' )
Parameters: (3)
  • (int) $post_id Post ID.
    Required: Yes
  • (string) $meta_key Metadata name.
    Required: Yes
  • (mixed) $meta_value Optional. Metadata value. If provided, rows will only be removed that match the value. Must be serializable if non-scalar. Default empty.
    Required: No
    Default: (empty)
  • (bool) True on success, false on failure.
Defined at:

Deletes a post meta field for the given post ID.

You can match based on the key, or key and value. Removing based on key and value, will keep from removing duplicate metadata with the same key. It also allows removing all metadata matching the key, if needed.


function delete_post_meta( $post_id, $meta_key, $meta_value = '' ) {
	// Make sure meta is deleted from the post, not from a revision.
	$the_post = wp_is_post_revision( $post_id );
	if ( $the_post ) {
		$post_id = $the_post;

	return delete_metadata( 'post', $post_id, $meta_key, $meta_value );