Как добавить поддержку новых типов файлов в WordPress без плагинов

Почему WordPress по умолчанию ограничивает типы загружаемых файлов

WordPress из соображений безопасности и совместимости ограничивает список типов файлов, которые можно загружать через медиабиблиотеку. Это сделано для того, чтобы избежать загрузки вредоносных файлов, которые могут повредить сайт или сервер. Однако иногда возникает необходимость добавить поддержку нестандартных форматов, например, SVG для векторной графики или WebP для оптимизированных изображений.

Официально WordPress использует MIME-типы для проверки каждого загружаемого файла и разрешает загрузку только тех, которые есть в списке разрешенных. Чтобы расширить этот список, не обязательно использовать плагины — можно добавить код в файл functions.php вашей темы или в отдельный плагин.

Несмотря на то что плагины упрощают задачу, в некоторых случаях рекомендуется делать это вручную, чтобы избежать лишних зависимостей и держать контроль над кодом.

Добавление новых MIME-типов с помощью фильтра wpdesk_mime_types

В WordPress для добавления новых типов файлов используется фильтр upload_mimes. Пример ниже показывает, как добавить поддержку SVG и WebP файлов.

function wpdesk_add_custom_mime_types($mimes) {
    // Добавляем поддержку SVG
    $mimes['svg'] = 'image/svg+xml';
    // Добавляем поддержку WebP
    $mimes['webp'] = 'image/webp';
    return $mimes;
}
add_filter('upload_mimes', 'wpdesk_add_custom_mime_types');

Этот код необходимо добавить в functions.php активной темы или в собственный плагин. После этого в медиабиблиотеке WordPress можно будет загружать файлы с расширениями .svg и .webp.

Особенности работы с SVG в WordPress

SVG — это векторный формат, который может содержать скрипты и потенциально быть опасным. Поэтому WordPress по умолчанию не разрешает его загрузку. Если вы добавляете SVG, убедитесь, что файлы безопасны, либо используйте дополнительную проверку и очистку SVG перед загрузкой.

Для базовой поддержки SVG можно использовать приведенный выше код, но для безопасности лучше применять специализированные решения вроде Clearfy Pro с функцией очистки SVG.

Добавление MIME-типа с проверкой расширения и фильтрацией ошибок

Иногда WordPress дополнительно проверяет файлы по их содержимому. Чтобы гарантировать корректную обработку новых типов, можно расширить код, добавив проверку и обработку ошибок загрузки.

function wpdesk_allow_custom_upload_mimes($mimes) {
    $mimes['svg']  = 'image/svg+xml';
    $mimes['webp'] = 'image/webp';
    return $mimes;
}
add_filter('upload_mimes', 'wpdesk_allow_custom_upload_mimes');

// Разрешить SVG для редактора Gutenberg
function wpdesk_fix_svg_upload_error($data, $file, $filename, $mimes, $real_mime) {
    if ($real_mime === 'image/svg+xml') {
        $data['ext'] = 'svg';
        $data['type'] = 'image/svg+xml';
        $data['proper_filename'] = $filename;
    }
    return $data;
}
add_filter('wp_check_filetype_and_ext', 'wpdesk_fix_svg_upload_error', 10, 5);

Этот код исправляет ошибку загрузки SVG в новых версиях WordPress, где проверка типа файла ужесточена.

Как добавить поддержку нестандартных типов файлов: примеры

Добавление PDF с дополнительной проверкой

PDF обычно поддерживается, но если у вас кастомная установка, можно добавить так:

function wpdesk_add_pdf_mime($mimes) {
    $mimes['pdf'] = 'application/pdf';
    return $mimes;
}
add_filter('upload_mimes', 'wpdesk_add_pdf_mime');

Добавление формата JSON

Иногда нужно загружать файлы в формате JSON, например, для импорта настроек или данных. По умолчанию WordPress не разрешает JSON, добавим его:

function wpdesk_add_json_mime($mimes) {
    $mimes['json'] = 'application/json';
    return $mimes;
}
add_filter('upload_mimes', 'wpdesk_add_json_mime');

После этого JSON-файлы можно будет загружать через медиабиблиотеку.

Безопасность при добавлении новых типов файлов

Добавляя новые типы файлов, важно помнить о безопасности. Особенно это касается SVG и JSON, которые могут содержать скрипты или вредоносный код.

Для SVG рекомендуется применять очистку содержимого, например, через библиотеку Clearfy Pro, которая автоматически удаляет опасные атрибуты и скрипты.

Для JSON и других текстовых форматов стоит ограничить загрузку только доверенными пользователями, например, администраторами, чтобы исключить загрузку вредоносных данных.

Итоговые рекомендации и лучшие практики

  • Используйте фильтр upload_mimes для добавления новых MIME-типов.
  • Добавляйте дополнительную проверку через wp_check_filetype_and_ext, чтобы предотвратить ошибки загрузки.
  • Обязательно учитывайте безопасность, особенно для SVG и JSON.
  • Используйте проверенные решения для очистки SVG, например, Clearfy Pro.
  • По возможности ограничивайте загрузку нестандартных форматов только администраторам.

Такой подход позволит расширить возможности загрузки файлов на вашем сайте без лишних плагинов и с минимальными рисками.

Удаление старых ревизий постов WordPress без плагинов: оптимизация базы данных
01.01.2026
Как изменить атрибуты товаров WooCommerce через REST API
22.04.2026
Как добавить поддержку AMP в WordPress: плагины и кастомный код
06.03.2026
Оптимизация базы данных WordPress без перегрузки сервера
30.11.2025
Как настроить автоматический экспорт заказов WooCommerce в Excel
25.12.2025

Плагин службы технической поддержки для WordPress. Создание, просмотр и ответ на тикеты. Уведомление пользователей и другие функции.