WP Media Upload проверяет, загружен ли уже файл, показывает окно предупреждения и перезаписывает - PullRequest
0 голосов
/ 06 марта 2020

При загрузке файла я хочу проверить, существует ли этот файл с таким именем в папке 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 );

Код работает нормально и перезаписывает любой существующий файл с тем же именем, но я хочу показать предупреждение перед завершением процесса загрузки с двойным выбором, что-то вроде: «Файл с таким именем уже существует, вы хотите перезаписать это? Да / Нет "Если ответ« нет », отмените процесс загрузки.

Я пытался, но не смог получить желаемый результат. Мы ценим любые предложения. Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...