Al borrar una entrada, página, o cualquier tipo de contenido, se borrarán los archivos que se hayan subido desde dicho contenido. El segundo bloque sirve para restringirlo a cierto tipo de contenido (CPT).
<?php
//Borrar adjuntos al borrar la entrada
add_action( 'before_delete_post', function( $id ) {
$attachments = get_attached_media( '', $id );
foreach ($attachments as $attachment) {
wp_delete_attachment( $attachment->ID, 'true' );
}
} );
//Borrar adjuntos del CPT cuyo slug es 'project'
add_action( 'before_delete_post', 'delete_all_attached_media' );
function delete_all_attached_media( $post_id ) {
if( get_post_type($post_id) == "product" ) {
$attachments = get_attached_media( '', $post_id );
foreach ($attachments as $attachment) {
wp_delete_attachment( $attachment->ID, 'true' );
}
}
}