Смотри - ты юзаешь функцию https://wp-kama.ru/function/wp_delete_attachment
А посмотрев в ней исходный код я вижу вызов функции wp_delete_attachment_files в самом конце иду в нее - там wp_delete_file_from_directory, потом еще глубже wp_delete_file
И вот я тут https://wp-kama.ru/function/wp_delete_file
И там есть фильтр wp_delete_file - вот его очищай на момент отрабатывания твоей функции - тогда файл останется на диске.