Как разрешить загрузку SVG и других форматов файлов в Вордпресс
Вордпресс по умолчанию не разрешает загружать файлы в формате SVG. Разбираемся, как исправить это недоразумение.
Научно-технический прогресс с каждым годом порождает на свет все новые и новые устройства. Интернет приходит туда, где всего несколько лет назад это казалось чем-то запредельным. Естественно, диапазон размеров дисплеев интернет-устройств становится все шире и шире. Кроме этого, растут и плотность пикселей, и разрешения дисплеев: Retina, 4K, 5K… Я думаю, прогресс на этом не остановится.
Что же делать веб-дизайнеру, как предусмотреть все возможные варианты отображения сайта? На помощь приходит адаптивная верстка и векторная графика. Которые вкупе творят чудеса абсолютно на любых разрешениях и плотностях. С адаптивной версткой и так все понятно — она либо есть, либо нет. А вот с загрузкой в 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
Подробнее
плагин. некоторые сервера неправильно переопределяют MIME тип загружаемого файла
После этого все работает отлично!