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

Retour