Borrar adjuntos al borrar un post

    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' );
        }
      }
    }