Eliminare l’immagine associata quando si elimina un articolo

Quante volte ti sarà capitato di inserire nuovi articoli in WordPress, con relativa immagine in evidenza associata e poi di dover cancellare, per un motivo o per un altro, questi stessi articoli? Sicuramente molto spesso!
Ti sarai accorto, forse, che quando elimini un articolo, l’immagine in evidenza associata, però, resta “in vita” sia nello spazio FTP, sia nel database di WordPress, sotto forma di post_type di tipo attachment, sprecando spazio per immagini che magari non verranno più utilizzate.
Ma niente paura: ecco un piccolo frammento di codice che ti permetterà di ovviare a tutto questo, cancellando definitivamente l’immagine in evidenza ogni qual volta ti appresti ad eliminare l’articolo a cui è associata.
- Leggi l'articolo, ti bastano solo 2 minuti, 47 secondi
Sei di fretta? Scarica il PDF e consultalo quando vuoi!
Il codice
È sufficiente inserire nel file functions.php del tema attivo, che trovi nello spazio FTP del tuo sito, in:
wp-content/themes/{nome_del_tema}/
la seguente funzione:
// Elimina l'immagine in evidenza associata quando si elimina un articolo add_action( 'before_delete_post', function( $post_id ) { if ( has_post_thumbnail( $post_id ) ) { $attachment_id = get_post_thumbnail_id( $post_id ); wp_delete_attachment( $attachment_id, true ); } }, 10 );
Ed il gioco è fatto! La funzione wp_delete_attachment() si occuperà non solo di eliminare i riferimenti all’immagine dal database insieme a tutti i metadata associati (titolo, didascalia, descrizione, testo alternativo), ma provvederà a cancellare definitivamente dal server anche il file fisico con tutte le thumbnails derivate, con un conseguente risparmio di spazio.
Se funzionasse anche per l'immagine in evidenza e le gallerie immagini di WooCommerce sarebbe fantastico. Lo fa?