Описание async_upload_{$type}
— Action
Хук async_upload_{$type} срабатывает во время асинхронной загрузки файлов в WordPress. Он позволяет разработчикам модифицировать или расширять функциональность обработки загружаемых файлов, прежде чем они будут сохранены в базе данных
Примеры использования
Пример изменения имени загружаемого файла:
add_action('async_upload_image', function($file, $type) {
$file['name'] = 'custom_name_' . time() . '.' . pathinfo($file['name'], PATHINFO_EXTENSION);
return $file;
});
В этом примере мы изменяем имя загружаемого изображения на ‘custom_name_’ с добавлением текущего времени
Пример проверки типа файла перед загрузкой:
add_action('async_upload_document', function($file, $type) {
if ($file['type'] !== 'application/pdf') {
return new WP_Error('invalid_file_type', 'Только PDF файлы разрешены');
}
return $file;
});
Здесь мы проверяем, что загружаемый файл является PDF, и если нет, возвращаем ошибку
Пример изменения размера загружаемого файла:
add_action('async_upload_audio', function($file, $type) {
if ($file['size'] > 10485760) { // 10MB
return new WP_Error('file_too_large', 'Размер файла не должен превышать 10MB');
}
return $file;
});
В этом примере мы ограничиваем размер загружаемого аудиофайла до 10MB
— Лучшие практики
– Использование
Используйте этот хук, когда необходимо модифицировать или проверять загружаемые файлы в WordPress
– Производительность
Хук может повлиять на производительность, если выполняются сложные проверки или модификации
– Предупреждения
Обязательно обрабатывайте возможные ошибки, возвращая WP_Error объект при необходимости
Альтернативы
Тип: filter
Этот фильтр позволяет изменять загружаемые файлы перед их обработкой
Используйте его, если необходимо модифицировать данные загружаемого файла до его обработки
Тип: action
Этот хук срабатывает после обработки загружаемого файла
Используйте, если нужно выполнять действия после загрузки файла, такие как запись в базу данных