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 è.