Safe SVG

Описание

Safe SVG – лучший способ реализовать загрузку SVG в WordPress!

Плагин даёт возможность разрешать загрузку SVG, в то же время следя за тем, чтобы они были очищены, для предотвращения угроз SVG/XML, потенциально влияющих на сайт.
Также даёт возможность просматривать загруженные SVG-файлы в медиа-библиотеке во всех размерах.

Текущий функционал

  • Очищенные SVG — Не создавайте дыры в безопасности вашего WordPress сайта, разрешая загрузку неочищенных файлов.
  • Оптимизация SVGO — При загрузке прогоняет ваши SVG через инструмент SVGO, чтобы сэкономить место. По умолчанию эта функция отключена, но ее можно включить, добавив следующий код: add_filter( 'safe_svg_optimizer_enabled', '__return_true' );
  • Просмотр SVG в библиотеке медиафайлов — Прошли те времена, когда нужно было угадывать, какой SVG правильный, мы включим предварительный просмотр SVG в медиатеке WordPress.
  • Выберите, кто может загружать — Ограничьте загрузку SVG определенным пользователям на вашем WordPress сайте или позвольте загружать их всем желающим.

Первоначальный концепт: #24251

Очистка SVG осуществляется с помощью следующей библиотеки: https://github.com/darylldoyle/svg-sanitizer

Оптимизация SVG осуществляется с помощью следующей библиотеки: https://github.com/svg/svgo.

Блоки

Этот плагин предоставляет 1 блок.

  • Safe SVG Display the SVG icon

Установка

Установить прямо через WordPress, либо загрузить, распаковать и выгрузить файлы в директорию /wp-content/plugins/ вашего сайта

Часто задаваемые вопросы

Можно ли изменить разрешенные атрибуты и теги?

Да, это возможно, используя фильтры svg_allowed_attributes и svg_allowed_tags.
Они принимают один аргумент, который должен быть возвращен. Смотрите примеры ниже:

add_filter( 'svg_allowed_attributes', function ( $attributes ) {

    // Do what you want here...

    // This should return an array so add your attributes to
    // to the $attributes array before returning it. E.G.

    $attributes[] = 'target'; // This would allow the target="" attribute.

    return $attributes;
} );


add_filter( 'svg_allowed_tags', function ( $tags ) {

    // Do what you want here...

    // This should return an array so add your tags to
    // to the $tags array before returning it. E.G.

    $tags[] = 'use'; // This would allow the <use> element.

    return $tags;
} );

Отзывы

11.03.2026 1 ответ
Needed SVG upload support, and this plugin did the job. Very lightweight and easy to use. No issues so far. Some additional settings would be nice, but overall, it’s quite solid.
21.06.2025 1 ответ
Would have given a 5 star, but it seems support is missing for the taxonomy / terms section (like in categories) upload for SVG images. Keep getting an error that the upload isn’t supported. Hopefully this will be fixed in a future update. Will update once this is added. Cheers!
30.04.2025 1 ответ
Great plugin! very usefull, but please can you add the possibility to add an inline SVG on the block pasting svg code? Thanks!
Посмотреть все 77 отзывов

Участники и разработчики

«Safe SVG» — проект с открытым исходным кодом. В развитие плагина внесли свой вклад следующие участники:

Участники

«Safe SVG» переведён на 29 языков. Благодарим переводчиков за их работу.

Перевести «Safe SVG» на ваш язык.

Заинтересованы в разработке?

Посмотрите код, проверьте SVN репозиторий, или подпишитесь на журнал разработки по RSS.

Журнал изменений

2.4.0 — 2025-09-22

  • Добавлено: Возможность загружать SVG из большего количества мест администрирования (реквизиты @stormrockwell, @darylldoyle, @wpexplorer, @smerriman, @jeffpaul, @dkotter через #279).
  • Изменения: Добавлен аргумент $attachment_id к фильтрам safe_svg_use_width_height_attributes и safe_svg_dimensions (реквизиты @roborourke, @dkotter через #278).
  • Исправлено: Несоответствующий или неправильный тип данных для ��ргумента $svg в фильтрах safe_svg_use_width_height_attributes и safe_svg_dimensions (реквизиты @roborourke, @dkotter через #278).

2.3.3 — 2025-08-13

  • Безопасность: Обновите пакет enshrined/svg-sanitize с 0.19.0 до 0.22.0, чтобы исправить проблему с пропуском атрибутов, не зависящих от регистра, через санитайзер и устранить предупреждения о депривации PHP 8.4 (реквизиты @darylldoyle, @sudar, @georgestephanis, @dkotter, @realazizk через #268, #272).
  • Безопасность: Переведите form-data с версии 4.0.0 на 4.0.4 (реквизиты @dependabot, @faisal-alvi через #270).
  • Безопасность: Переведите tmp с версии 0.2.3 на 0.2.5 и @inquirer/editor с версии 4.2.9 на 4.2.16 (реквизиты @dependabot, @dkotter через #271).

2.3.2 — 2025-07-21

  • Исправлено: Визуальное соответствие между фронт-эндом и блочным редактором (реквизиты @s3rgiosan, @dkotter через #261, #266).
  • Изменения: Поднимите WordPress «проверенный до» версии 6.8 (реквизиты @godleman, @jeffpaul, @dkotter через #251, #254).
  • Изменения: Повысьте минимальную поддерживаемую версию WordPress до 6.6 (реквизиты @godleman, @jeffpaul, @dkotter через #254).
  • Безопасность: Обновите ws с 7.5.10 до 8.18.0, @wordpress/scripts с 27.9.0 до 30.6.0, nanoid с 3.3.7 до 3.3.8 и mocha с 10.2.0 до 11.0.1 (реквизиты @dependabot, @peterwilsoncc через #245).
  • Безопасность: Сбросьте @babel/runtime с 7.23.9 до 7.27.0, axios с 1.7.4 до 1.8.4, cookie с 0.4.2 до 0.7.1, express с 4.21.0 до 4.21.2 и @wordpress/e2e-test-utils-playwright с 0.26.0 по 1.20.0 (реквизиты @dependabot, @dkotter через #250).
  • Безопасность: Переведите http-proxy-middleware с версии 2.0.6 на версию 2.0.9 (реквизиты @dependabot, @iamdharmesh через #253).
  • Безопасность: Переведите tar-fs с версии 3.0.8 на 3.0.9 (реквизиты @dependabot, @dkotter через #258).
  • Безопасность: Повысьте bytes с 3.0.0 до 3.1.2 и compression с 1.7.4 до 1.8.1 (реквизиты @dependabot, @dkotter через #265).

2.3.1 — 2024-12-05

2.3.0 — 2024-11-25

  • Добавлено: новый параметр, позволяющий загружать и правильно очищать большие файлы SVG (примерно 10 МБ или больше) (реквизиты @kirtangajjar, @faisal-alvi, @darylldoyle, @manojsiddoji, @dkotter через #201).
  • Добавлено: новая функция get_svg_dimensions для умен��шения дублирования кода (реквизиты @gabriel-glo, @jeremymoore, @darylldoyle, @iamdharmesh, @dkotter через #216).
  • Изменено: Обновлен пакет enshrined/svg-sanitize с версии 0.16.0 до 0.19.0 для исправления проблемы совместимости с PHP 8.3 (реквизиты @sksaju, @TylerB24890, @darylldoyle, @rolf-yoast, @faisal-alvi через #214).
  • Изменено: обновлен способ передачи размеров изображения в методах get_image_tag_override и one_pixel_fix (реквизиты @gabriel-glo, @jeremymoore, @darylldoyle, @iamdharmesh, @dkotter через #216).
  • Изменено: Поднятие версии WordPress «tested up to» до 6.7 (реквизиты @colinswinney, @jeffpaul через #232, #233).
  • Изменено: Минимальная версия WordPress повышена с 6.4 до 6.5 (реквизиты @colinswinney, @jeffpaul через #232, #233).
  • Изменено: Удалите зависимости Composer dev из архивированного проекта (реквизиты @TylerB24890, @szepeviktor, @peterwilsoncc через #220).
  • Исправлено: используйте правильную категорию блока для блока безопасной иконки SVG (реквизиты @kirtangajjar, @fabiankaegy через #226).
  • Безопасность: разрешается загрузка файлов SVG только в том случае, если наш санитайзер может работать с этими файлами (props @darylldoyle, @xknown, @dkotter через #228).
  • Безопасность: Переведите webpack с версии 5.90.1 на 5.94.0 (реквизиты @dependabot, @peterwilsoncc через #222).
  • Безопасность: Переход ws с 7.5.10 на 8.18.0, serve-static с 1.15.0 на 1.16.2 и express с 4.19.2 на 4.21.0 (props @dependabot, @Sidsector9, @faisal-alvi через #227, #230, #234).

2.2.6 — 2024-08-28

  • Изменено: Обновление WordPress «tested up to» до версии 6.6 (реквизиты @sudip-md, @ankitguptaindia, @jeffpaul через #212, #213).
  • Изменено: Минимальная версия WordPress увеличена с 5.7 до 6.4 (реквизиты @sudip-md, @ankitguptaindia, @jeffpaul через #212, #213).
  • Безопасность: добавьте очистку svg в фильтр wp_handle_sideload_prefilter (реквизиты @dkotter, @xknown, @iamdharmesh через GHSA-3vr7-86pg-hf4g).
  • Безопасность: Поднимите braces с 3.0.2 до 3.0.3, pac-resolver с 7.0.0 до 7.0.1, socks с 2.7.1 до 2.8.3, ws с 7.5.9 до 7.5.10 и удалите ip (реквизиты @dependabot, @Sidsector9 через #206).
  • Безопасность: Переведите axios с версии 1.6.7 на версию 1.7.4 (реквизиты @dependabot, @faisal-alvi через #218).

Смотрите журнал изменений проекта здесь.