WordPress: verificare se un file è presente nella Media Library

WordPress: verificare se un file è presente nella Media Library

A volte in WordPress può esservi la necessità di verificare se i file caricati sono già stati inseriti nella Media Library come allegati. Vediamo in dettaglio una soluzione.

Possiamo definire la seguente funzione:


function my_is_file_already_in_media_library( $file_path ) {
    global $wpdb;
    $file_bp = basename( $file_path );
    $file_name = preg_replace( '/\.[^.]+$/', '', $file_bp );
    $query = "SELECT ID FROM $wpdb->posts WHERE post_name = '$file_name' AND post_type = 'attachment'";
    $attachment_id = $wpdb->get_var( $query );
    return $attachment_id;
}

La funzione accetta come argomento il percorso del file, estrae il nome del file privo dell'estensione ed effettua una query sulla tabella posts confrontando la colonna post_name con il nome ottenuto e specificando di restringere la selezioni ai soli record che hanno la colonna post_type impostata su attachment.

Infine, restituisce l'ID dell'allegato se il file è già presente o null se non lo è.

Torna su