Как разрешить загрузку SVG и других форматов файлов в Вордпресс

Опубликовано 9 лет назад

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

Научно-технический прогресс с каждым годом порождает на свет все новые и новые устройства. Интернет приходит туда, где всего несколько лет назад это казалось чем-то запредельным. Естественно, диапазон размеров дисплеев интернет-устройств становится все шире и шире. Кроме этого, растут и плотность пикселей, и разрешения дисплеев: Retina, 4K, 5K… Я думаю, прогресс на этом не остановится.

Что же делать веб-дизайнеру, как предусмотреть все возможные варианты отображения сайта? На помощь приходит адаптивная верстка и векторная графика. Которые вкупе творят чудеса абсолютно на любых разрешениях и плотностях. С адаптивной версткой и так все понятно — она либо есть, либо нет. А вот с загрузкой в WordPress векторной графики есть некоторые нюансы. Например, популярный формат SVG с помощью стандартного загрузчика в WordPress загрузить не получится. По причинам безопасности, он просто не даст вам этого сделать.

Как разрешить загрузку SVG и других форматов файлов в WordPress?

Проблема решается очень просто.
Как обычно, я покажу два способа: с помощью плагинов и кода.

Плагины

Я обычно использую один из двух плагинов: SVG Support от Benbodhi или Safe SVG от 10up. Плагины не требуют какой-то особой настройки. Чаще всего не требуют вообще никакой.

Но если вы относитесь серьезно к безопасности своего сайта, тогда второй плагин, наверное, вам будет более интересен.

Safe SVG, кроме всего прочего, очищает и оптимизирует загружаемые SVG-файлы. Правда, насколько качественно и адекватно это уже другой вопрос.

Код

Открываем functions.php вашей активной темы и где-нибудь в конце вставляем такой код:

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

Если вы вдруг захотите разрешить еще и загрузку PSD, тогда можно немного усложнить код.

function dnln_mime_types($mimes){
    $mimes['svg'] = 'image/svg+xml'; // поддержка SVG
    $mimes['psd'] = 'image/vnd.adobe.photoshop'; // поддержка PSD
    return $mimes;
}
add_filter('upload_mimes', 'dnln_mime_types', 1, 1);

Можно заметить, функция достаточно проста и список допустимых типов файлов можно с легкостью расширять. К примеру, можно разрешить:

  • 7-Zip — application/x-7z-compressed;
  • Adobe Portable Document Format — application/pdf;
  • BitTorrent — application/x-bittorrent;
  • M3U (Multimedia Playlist) — audio/x-mpegurl;
  • M4v — video/x-m4v;
  • Microsoft Windows Media Video — video/x-ms-wmv;
  • MPEG-4 Video — video/mp4;
  • XML (Extensible Markup Language) — application/xml.

Список всех MIME-типов можно посмотреть здесь, например.

Иван Данилин
Автор Иван Данилин

Фулстек веб‑разработчик, специализируюсь на платформе WordPress

Подробнее
Комментарии
    • https://ru.wordpress.org/plugins/disable-real-mime-check/
      плагин. некоторые сервера неправильно переопределяют MIME тип загружаемого файла
      После этого все работает отлично!
Добавить комментарий