Добавление SVG-файлов в медиабиблиотеку WordPress

Я люблю SVG-файлы. Когда мне нужно на новый сайт подобрать / сделать логотип, на выходе я всегда получаю не какой-нибудь png / jpg, а именно svg файл.

Самое крутое в этом формате то, что при масштабировании картинка не теряет в качестве — она офигительно смотрится на любом устройстве, начиная от Android и заканчия iMac.

Проблема — при попытке загрузить SVG-файл в библиотеку файлов возникает ошибка «Извините, этот тип файла недопустим по соображениям безопасности»

Выглядит это как-то так:

Извините, этот тип файла недопустим по соображениям безопасности
Извините, этот тип файла недопустим по соображениям безопасности

Решение — внести изменения в файл function.php активной темы, дописав дополнительную функцию

Для плохих мальчиков и девочек открываем файл /wp-content/themes/НАЗВАНИЕ_ВАШЕЙ_ТЕМЫ/function.php и дописываем туда следующее:

1
2
3
4
5
function extra_mime_types( $mimes ) {
$mimes['svg'] = 'image/svg+xml';
return $mimes;
}
add_filter( 'upload_mimes', 'extra_mime_types' );

Ничего фантастического — просто добавляем новый MIME-тип image/svg+xml для загрузки в библиотеку. Теперь чистим кеш и пробуем повторно загрузить файл. В итоге получаем один из двух вариантов:

  1. Файл успешно загрузился;
  2. Повторно появляется ошибка «Извините, этот тип файла недопустим по соображениям безопасности»

Если у вас второй случай — значит проблема в самом SVG-файле. Идем и открываем файл любимым текстовым редактором и смотрим на первую строку.

Содержимое SVG-файла
Содержимое SVG-файла — отсутствует xml definition

В моем случае файл начинается сразу с тега <svg> — это не очень нравится загрузчику WordPress. Чтобы файл корректно загрузился в библиотеку в начало файла необходимо добавить строку:

1
<?xml version="1.0" encoding="utf-8"?>

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

Добавление XML-определения файла для SVG
Добавление XML-определения файла для SVG

Теперь еще раз попробуйте загрузить файл — у меня все прошло без ошибок. Если у вас не загружается — поздравляю, вы уникальный образец 🙂

Добавить комментарий

Трудовой Шмель