delete_metadata_by_mid( string $meta_type, int $meta_id )
Supprime une méta-donnée en passant son id.
Paramètres
$meta_type
(string) (Requis) Type d'objet. Accepte 'post', 'comment', 'term', 'user' ou tout autre type d'objet associé à une table de méta-donnée.
$meta_id
(int) (Requis) Id de la méta-donnée.
Retourne
(bool) True si supprimée avec succès, false sinon.
Structure de la fonction delete_metadata_by_mid()
Définie dans le fichier wp-includes/meta.php à la ligne 896 :
function delete_metadata_by_mid( $meta_type, $meta_id ) {
global $wpdb;
// Make sure everything is valid.
if ( ! $meta_type || ! is_numeric( $meta_id ) || floor( $meta_id ) != $meta_id ) {
return false;
}
$meta_id = intval( $meta_id );
if ( $meta_id <= 0 ) {
return false;
}
$table = _get_meta_table( $meta_type );
if ( ! $table ) {
return false;
}
// Object and ID columns.
$column = sanitize_key( $meta_type . '_id' );
$id_column = ( 'user' === $meta_type ) ? 'umeta_id' : 'meta_id';
/**
* Short-circuits deleting metadata of a specific type by meta ID.
*
* The dynamic portion of the hook, `$meta_type`, refers to the meta object type
* (post, comment, term, user, or any other type with an associated meta table).
* Returning a non-null value will effectively short-circuit the function.
*
* @since 5.0.0
*
* @param null|bool $delete Whether to allow metadata deletion of the given type.
* @param int $meta_id Meta ID.
*/
$check = apply_filters( "delete_{$meta_type}_metadata_by_mid", null, $meta_id );
if ( null !== $check ) {
return (bool) $check;
}
// Fetch the meta and go on if it's found.
$meta = get_metadata_by_mid( $meta_type, $meta_id );
if ( $meta ) {
$object_id = (int) $meta->{$column};
/** This action is documented in wp-includes/meta.php */
do_action( "delete_{$meta_type}_meta", (array) $meta_id, $object_id, $meta->meta_key, $meta->meta_value );
// Old-style action.
if ( 'post' === $meta_type || 'comment' === $meta_type ) {
/**
* Fires immediately before deleting post or comment metadata of a specific type.
*
* The dynamic portion of the hook, `$meta_type`, refers to the meta
* object type (post or comment).
*
* @since 3.4.0
*
* @param int $meta_id ID of the metadata entry to delete.
*/
do_action( "delete_{$meta_type}meta", $meta_id );
}
// Run the query, will return true if deleted, false otherwise.
$result = (bool) $wpdb->delete( $table, array( $id_column => $meta_id ) );
// Clear the caches.
wp_cache_delete( $object_id, $meta_type . '_meta' );
/** This action is documented in wp-includes/meta.php */
do_action( "deleted_{$meta_type}_meta", (array) $meta_id, $object_id, $meta->meta_key, $meta->meta_value );
// Old-style action.
if ( 'post' === $meta_type || 'comment' === $meta_type ) {
/**
* Fires immediately after deleting post or comment metadata of a specific type.
*
* The dynamic portion of the hook, `$meta_type`, refers to the meta
* object type (post or comment).
*
* @since 3.4.0
*
* @param int $meta_ids Deleted metadata entry ID.
*/
do_action( "deleted_{$meta_type}meta", $meta_id );
}
return $result;
}
// Meta ID was not found.
return false;
}
Fonctions et Hooks utilisés par delete_metadata_by_mid()
delete_{$meta_type}_metadata_by_mid
Court-circuite la méta-donnée à supprimer d'un type spécifique par son id.
wp_cache_delete()
Supprime les contenus du cache correspondant à la clé et au groupe.
sanitize_key()
Nettoie une clé de type chaîne.
apply_filters()
Appel les fonctions qui ont été attaché à un filtre (hook).
do_action()
Exécute des fonctions attachées à un hook spécifique.
_get_meta_table()
Retourne le nom d'une table de méta-donnée pour un type d'objet spécifié.
get_metadata_by_mid()
Retourne un objet de méta-donnée par son id.
delete_{$meta_type}_meta
Se lance immédiatement avant la méta-donnée d'un type spécifique à supprimer.
delete_{$meta_type}meta
Se lance immédiatement avant une méta-donnée de poste ou de commentaire à supprimer.
deleted_{$meta_type}_meta
Se lance immédiatement après qu'une méta-donnée d'un type spécifique soit supprimée.
deleted_{$meta_type}meta
Se lance immédiatement après qu'une méta-donnée de poste ou de commentaire soit supprimée.
Où trouver la fonction delete_metadata_by_mid()
dans le CMS Wordpress
Sources
Codex Wordpress : delete_metadata_by_mid()
Autres fonctions dans le même fichier : wp-includes/meta.php