getimagesize_mimes_to_exts
Дозволяє додати 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', )
Приклади
#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 | Введено. |
Де викликається хук
Де використовується хук у WordPress
Використання не знайдено.