getimagesize_mimes_to_exts хук-фільтрWP 3.0.0

Дозволяє додати MIME тип і відповідне розширення файлу-картинки.

Цей фільтр використовується в ядрі у випадках, коли завантажується картинка з розширенням, відмінним від реального MIME типу файлу.

Наприклад, ми маємо файл-картинка my-image.jpg, але реальний формат картинки PNG, тобто. у назві файлу помилка. В цьому випадку, в ході перевірок, WordPress дійде до цього хука і з нього отримає розширення файлу за реальним MIME типу файлу 'image/png' => 'png', а потім замінить це розширення в файлі, тобто. в результаті на сайт буде завантажено картинку з назвою my-image.png.

Цей хук може стати в нагоді коли ми додаємо свої формати картинок, наприклад webp і нам також потрібно передбачити, що розширення в назві файлу може відрізнятися від реального формату.

Використання

add_filter( 'getimagesize_mimes_to_exts', 'wp_kama_getimagesize_mimes_to_exts_filter');

/**
 * Function for `getimagesize_mimes_to_exts` filter-hook.
 *
 * @param array $mime_to_ext Array of image mime types and their matching extensions.
 *
 * @return array
 */
function wp_kama_getimagesize_mimes_to_exts_filter( $mime_to_ext ){

	// Filter...
	return $mime_to_ext;
}
$mime_to_ext
(масив)

Масив MIME типів та відповідних розширень фалів.

array(
	'image/jpeg' => 'jpg',
	'image/png' => 'png',
	'image/gif' => 'gif',
	'image/bmp' => 'bmp',
	'image/tiff' => 'tif',
)

Приклади

0

#1 Виправляємо розширення .webp формату та дозволяємо завантаження.

Допустимо ми дозволили завантаження картинок з форматом webp, таким кодом:

add_filter( 'upload_mimes', function( $mimes ){
	$mimes['webp'] = 'image/webp';

	return $mimes;
} );

І тепер намагаємося завантажити завантажену десь у мережі картинку з розширенням .png , наприклад img.png , реальний формат якої webp. Картинка в цьому випадку не завантажиться, а ми побачимо повідомлення, що цей формат заборонений з метою безпеки. Але як? PNG завантажували на сайт 100500 разів. І навіть коли з’ясуємо, що реальний формат webp, – так ми ж його дозволили до завантаження. Вся ця ситуація буде схожа на якийсь дикий глюк!

Так відбувається, тому що в ході перевірок, WP з’ясовує, що зазначене розширення файлу не відповідає реальному типу файлу і намагається знайти правильне розширення файлу, і провести повторну перевірку файлу, але не знаходить його, тому що по дефолту його немає і перевірка провалюється.

Додати потрібну відповідність можна через цей хук:

add_filter( 'getimagesize_mimes_to_exts', function( $mime_to_ext ){
	$mime_to_ext['image/webp'] = 'webp';

	return $mime_to_ext;
} );

список змін

З версії 3.0.0Введено.

Де викликається хук

getimagesize_mimes_to_exts

Де використовується хук у WordPress

Використання не знайдено.

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *