Как разрешить загрузку svg в WordPress

По умолчанию WordPress запрещает загружать на сайт файлы svg. Уже 12 лет идет процесс обсуждения о включении svg в список разрешенных файлов для загрузки, но положительного результата нет. На данный момент есть обходные пути как в wordpress разрешить загрузку svg. Рассмотрим их в этой статье.

Почему нельзя загружать svg в WordPress?

Когда вы попытаетесь добавить svg в вордресс, появится предупреждение «Извините, вам не разрешено загрузить этот тип файла».

ВордПресс не поддерживает загрузку svg файлов по соображениям безопасности. Так как SVG – это язык разметки, то он может содержать опасный код. Это значит, что SVG подвержен внедрению в код разных уязвимостей, например XSS-атаки.

Как включить поддержку svg?

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

Разрешить загрузку SVG через код

Необходимо вручную добавить код в файл functions.php вашей темы.

Подключитесь к сайту по FTP или откройте Внешний вид > Редактор тем в админке. Откройте файл functions.php для редактирования.

Добавьте внизу файла код

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

Код добавляет в список разрешенных для загрузки файлов MIME-тип SVG.

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

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

Код, который проверяет админские права пользователя.

// Разрешает загружать svg всем админам
function add_support_svg_file($mimes) {
    // Проверка админских прав пользователя
    if( current_user_can('administrator') ) {
        $mimes['svg'] = 'image/svg+xml';
    }
    return $mimes;
}
add_filter('upload_mimes', 'add_support_svg_file');

Чтобы разрешить загружать svg только конкретному пользователю, например администратору с ID=1, код будет такой

// Разрешает загружать svg только юзеру с ID=1
function add_support_svg_file($mimes) {
    $user_id = get_current_user_id();
    if( $user_id == 1 ) {
        $mimes['svg'] = 'image/svg+xml';
    }
    return $mimes;
}
add_filter('upload_mimes', 'add_support_svg_file');

Код с дополнительными проверками более безопасен. Он не дает загрузить svg неизвестным пользователям. Однако он не спасет, если в svg встроен вредоносный код. В идеале, перед загрузкой все svg файлы должны быть очищены. Сделать это можно с помощью специальных библиотек, но процесс трудоемкий и гораздо правильнее использовать для этого плагины.

Плагины WordPress для загрузки svg

Плагин Safe SVG

Safe SVG один из самых популярных плагинов для добавления поддержки SVG.

Что умеет плагин:

  • Очищает SVG-файлы. Удаляет вредоносный код из содержимого файла.
  • Оптимизирует файлы. Выполняет оптимизацию SVG через инструмент SVGO.
  • Предпросмотр SVG-файлов в медиатеке. По умолчанию, файлы svg будут отображаться в медиатеке в виде иконки, плагин показывает содержимое файла.
  • Расширенные возможности для загрузки файлов. Можно дополнительно указать, кому разрешено работать с файлами svg в ВордПресс.
  • Блок Guttenberg. Позволяет встраивать на страницы/записи svg код.

Установите плагин в админке. У плагина нет страниц настроек, а значит вы сразу сможете использовать все его возможности.

Плагин SVG Support

SVG Support – еще один популярный плагин для добавления возможности загрузки SVG-файлов в WordPress.

Возможности плагина:

  • Включает поддержку SVG. После установки можно сразу загружать файлы.
  • Очистка файлов. Все файлы SVG предварительно очищаются для безопасности.
  • Минификация. Оптимизирует svg для лучшего использования на сайте.
  • Рендеринг SVG. Может добавлять inline svg.
  • Расширенные настройки. Позволяет выбрать роли пользователей, кто имеет возможность загружать svg.

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

Заключение

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

Содержание:
Нет комментариев