При загрузке файла я хочу проверить, существует ли этот файл с таким именем в папке wp media, и перезаписать его. По умолчанию, если я загружаю файл с именем img.jpg при попытке загрузить новый файл с тем же именем img.jpg, Wordpress добавляет к нему суффикс цифра c, переименовывая его в img-1.jpg и так далее. Я подключаюсь к sanitize_file_name () , чтобы остановить логи c переименования изображений с уже существующим именем файла.
Это мой код:
function same_filename_overwrite( $name )
{
$args = array(
'numberposts' => -1,
'post_type' => 'attachment',
'meta_query' => array(
array(
'key' => '_wp_attached_file',
'value' => $name,
'compare' => 'LIKE'
)
)
);
$attachments_to_remove = get_posts( $args );
foreach( $attachments_to_remove as $attach )
wp_delete_attachment( $attach->ID, true );
return $name;
}
add_filter( 'sanitize_file_name', 'same_filename_overwrite', 10, 1 );
Код работает нормально и перезаписывает любой существующий файл с тем же именем, но я хочу показать предупреждение перед завершением процесса загрузки с двойным выбором, что-то вроде: «Файл с таким именем уже существует, вы хотите перезаписать это? Да / Нет "Если ответ« нет », отмените процесс загрузки.
Я пытался, но не смог получить желаемый результат. Мы ценим любые предложения. Спасибо.