Definition:
function delete_metadata_by_mid( $meta_type, $meta_id ) {}
Delete meta data by meta ID
Parameters
- string $meta_type: Type of object metadata is for (e.g., comment, post, or user)
- int $meta_id: ID for a specific meta row
Return values
returns:True on successful delete, false on failure.
Defined actions
- delete_{$meta_type}_meta
do_action( "delete_{$meta_type}_meta", (array) $meta_id, $object_id, $meta->meta_key, $meta->meta_value ); - delete_postmeta
do_action( 'delete_postmeta', $meta_id ); - deleted_{$meta_type}_meta
do_action( "deleted_{$meta_type}_meta", (array) $meta_id, $object_id, $meta->meta_key, $meta->meta_value );
Source code
function delete_metadata_by_mid( $meta_type, $meta_id ) {
global $wpdb;
// Make sure everything is valid.
if ( ! $meta_type )
return false;
if ( ! $meta_id = absint( $meta_id ) )
return false;
if ( ! $table = _get_meta_table( $meta_type ) )
return false;
// object and id columns
$column = esc_sql($meta_type . '_id');
$id_column = 'user' == $meta_type ? 'umeta_id' : 'meta_id';
// Fetch the meta and go on if it's found.
if ( $meta = get_metadata_by_mid( $meta_type, $meta_id ) ) {
$object_id = $meta->{$column};
do_action( "delete_{$meta_type}_meta", (array) $meta_id, $object_id, $meta->meta_key, $meta->meta_value );
if ( 'post' == $meta_type )
do_action( 'delete_postmeta', $meta_id );
// Run the query, will return true if deleted, false otherwise
$result = (bool) $wpdb->query( $wpdb->prepare( "DELETE FROM $table WHERE $id_column = %d LIMIT 1;", $meta_id ) );
// Clear the caches.
wp_cache_delete($object_id, $meta_type . '_meta');
do_action( "deleted_{$meta_type}_meta", (array) $meta_id, $object_id, $meta->meta_key, $meta->meta_value );
15965

December 13, 2011 


No comments yet... Be the first to leave a reply!