
🔧 Як виправити помилку «Вибачте, цей тип файлу не дозволено з міркувань безпеки» в WordPress
Ви завантажуєте файл у медіатеку WordPress, а у відповідь, червоне попередження: «Вибачте, цей тип файлу не дозволено з міркувань безпеки». Шрифт.woff для кастомного дизайну, SVG-іконка для логотипа,.epub-книга для користувачів, WordPress просто відмовляється їх приймати.
Проблема не у вашому файлі. WordPress з коробки жорстко фільтрує типи даних, що завантажуються, — це вбудований механізм безпеки, який захищає сайт від потенційно небезпечних файлів. Але він же блокує й цілком легітимні формати, потрібні вам для роботи.
Нижче, три робочі способи обійти обмеження: швидкий через код у wp-config.php, гнучкий через плагін і спеціальний для SVG-графіки. Без правки ядра, без ризику для сайту.
💡 Швидкий огляд:
- Скиньте обмеження WordPress через константу ALLOW_UNFILTERED_UPLOADS у wp-config.php.
- Установіть плагін Add MIME Types для точкового додавання форматів через адмінку.
- Для SVG-графіки використовуйте Safe SVG із вбудованим санітайзером.
Чому WordPress блокує завантаження файлів
WordPress підтримує десятки форматів з коробки, але далеко не всі. Система звіряє MIME-тип кожного файлу, що завантажується, із жорстко заданим списком дозволених. Якщо тип не знайдено, ви бачите повідомлення «Вибачте, цей тип файлу не дозволено з міркувань безпеки».

За замовчуванням WordPress дозволяє завантаження таких категорій:
Категорія | Дозволені розширення |
|---|---|
Зображення | .jpg,.jpeg,.png,.gif,.ico,.webp |
Відео | .mp4,.m4v,.mov,.wmv,.avi,.mpg,.ogv,.3gp,.3g2 |
Документи | .pdf,.doc,.docx,.ppt,.pptx,.pps,.ppsx,.odt,.xls,.xlsx,.psd |
Аудіо | .mp3,.m4a,.ogg,.wav |
Усе, чого немає в таблиці:.woff/.woff2 для шрифтів,.svg для векторної графіки,.epub для електронних книг,.json,.xml,.csv, WordPress блокує.
Типовий приклад: ви підключаєте кастомний шрифт до теми й намагаєтеся завантажити .woff-файл через медіатеку. Результат:

Файл на сервері, розширення коректне, вміст безпечний, але WordPress не знає MIME-тип font/woff і відмовляє. Рішень три.
Спосіб 1: Код у wp-config.php (швидкий, для будь-яких форматів)
Найкоротший шлях, додати один рядок у конфігураційний файл WordPress. Константа ALLOW_UNFILTERED_UPLOADS вимикає перевірку MIME-типів, і ви можете завантажувати файли будь-яких форматів.
Перед початком зробіть бекап сайту. Редагування wp-config.php напряму, операція з низьким ризиком, але файл критичний для роботи WordPress.
Підключіться до сервера через FTP/SFTP (FileZilla, WinSCP або файловий менеджер хостингу). Файл wp-config.php лежить у кореневій папці, там само, де директорії wp-admin і wp-includes.

Відкрийте wp-config.php і додайте наступний рядок перед коментарем /* That's all, stop editing! Happy blogging. */:
1 define('ALLOW_UNFILTERED_UPLOADS', true);

Збережіть файл і завантажте назад на сервер, якщо редагували локально. Потім вийдіть з адмінки WordPress і ввійдіть заново, це обов’язково, інакше змінена конфігурація не застосується.
Після повторного входу спробуйте завантажити файл, обмеження знято.

Плюси методу: миттєво, не потребує плагінів, працює для будь-якого формату. Мінус: відкриває завантаження взагалі всього, ALLOW_UNFILTERED_UPLOADS не розрізняє безпечний .woff і потенційно небезпечний виконуваний файл. Якщо на сайті є інші адміністратори або автори, цей спосіб краще не використовувати.
Спосіб 2: Плагін Add MIME Types (гнучкий, через адмінку)
Якщо не хочете чіпати wp-config.php або вам потрібен точковий контроль, лише .woff і .svg, але не .exe, використовуйте плагін Add MIME Types на WordPress.org.
Плагін активно підтримується (версія 3.2.0, сумісність із PHP 8.5 і WordPress 7.0) і не змінює файли ядра, лише додає потрібні MIME-типи через стандартний фільтр WordPress.
Установіть і активуйте плагін, потім перейдіть у Налаштування → Add MIME Types. Ви побачите список уже дозволених форматів, плагін показує їх червоним кольором у кінці переліку.

Щоб додати новий тип, впишіть у поле розширення та відповідний MIME-тип. Наприклад:
1 woff = font/woff 2 woff2 = font/woff2 3 svg = image/svg+xml 4 epub = application/epub+zip
Натисніть Save Changes, формат додано. Перевірте: завантажте файл потрібного типу в медіатеку. WordPress прийме його без помилки.
Плюси: безпечніше за константу ALLOW_UNFILTERED_UPLOADS (додаєте лише те, що потрібно), керування через адмінку, налаштування зберігаються під час оновлення ядра. Мінус: на один крок довше, ніж правка коду.
Альтернатива для SVG: плагін Safe SVG
Якщо єдиний «недозволений» формат на вашому сайті, SVG, є спеціалізоване рішення. Safe SVG від команди 10up не просто дозволяє завантаження векторної графіки, він санує кожен файл під час Upload, вирізаючи потенційно шкідливий XML/JavaScript-код.

Після встановлення плагін працює «з коробки»: жодних налаштувань, SVG-файли одразу доступні для завантаження та коректно відображаються в медіатеці (включно з прев’ю, чого WordPress за замовчуванням для SVG не робить).
Плагін активний на 1+ мільйоні сайтів, сумісний із WordPress 7.0 і регулярно оновлюється. Якщо SVG — це все, що вам потрібно, Safe SVG закриває задачу чистіше, ніж універсальний MIME-плагін.
Коротке відео за темою, наочно показує всі три способи виправлення помилки в адмінці WordPress:
⁉️🤔 Часті запитання
Чи безпечно використовувати ALLOW_UNFILTERED_UPLOADS на бойовому сайті?
Із застереженнями. Константа повністю вимикає перевірку MIME-типів, будь-який користувач із правом завантаження файлів зможе залити в медіатеку що завгодно, включно з виконуваними скриптами. На продакшені з кількома авторами використовуйте другий спосіб (Add MIME Types) або хоча б обмежте коло осіб, які мають доступ до медіатеки.
Чому WordPress не дозволяє SVG за замовчуванням?
SVG — це XML-документ, а не бінарне зображення. Всередині SVG-файлу може знаходитися JavaScript, обробники подій і теги
<foreignObject>, що відкриває вектор для XSS-атак. Саме тому ядро WordPress блокує SVG, а плагіни на кшталт Safe SVG пропускають файли через санітайзер, видаляють увесь потенційно небезпечний код, залишаючи лише графіку.
Після додавання коду в wp-config.php помилка залишилася. Що робити?
Три ймовірні причини. Перша: ви не вийшли й не зайшли заново в адмінку, конфігурація кешується сесією, потрібен новий логін. Друга: файл завантажено не в те місце,
wp-config.phpмає лежати в корені сайту, не в/wp-content/і не в/wp-admin/. Третя: на сайті активний плагін безпеки (Wordfence, Solid Security), який перехоплює завантаження незалежно від константи, перевірте їхні налаштування.
Чи можна дозволити завантаження лише одному користувачеві?
Через
ALLOW_UNFILTERED_UPLOADS, ні, константа глобальна. Плагін Add MIME Types також застосовується до всіх ролей із правомupload_files. Для вибіркового доступу використовуйте фільтрupload_mimesуfunctions.phpіз перевіркоюcurrent_user_can(), але це вже кастомна розробка.
Що робити, якщо плагін Add MIME Types не працює для мого формату?
Деякі формати потребують точного збігу MIME-типу, який визначає PHP-функція
finfo_fileна вашому сервері, він може відрізнятися від «стандартного». У налаштуваннях плагіна ввімкніть опцію «Enable to debug output for file types recognized by WordPress», завантажте файл і подивіться, який MIME-тип фактично визначив сервер, потім пропишіть саме його. Після перевірки вимкніть debug-режим.
Знімаємо блокування: який спосіб обрати
Триетапна логіка вибору:
Потрібно завантажити один файл просто зараз? Виправлення
wp-config.php, 30 секунд, і обмеження немає. Не забудьте потім прибрати рядок або закоментувати, якщо сайт публічний.Регулярно завантажуєте конкретні формати? Add MIME Types, безпечніше, наочніше і не злітає під час оновлення ядра WordPress.
Працюєте лише з SVG? Safe SVG, спеціалізований інструмент із санітайзером, який не просто «пропускає», а очищує. Для всього іншого, перший або другий спосіб.
Помилка «Вибачте, цей тип файлу не дозволено» — це не баг, а навмисне обмеження. Але WordPress залишив легальні способи його обійти. Оберіть відповідний і повертайтеся до роботи. 🔗 Add MIME Types на WordPress.org | 🔗 Safe SVG на WordPress.org



