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;
} );

Отзывы

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!
Посмотреть все 75 отзывов

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

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

Участники

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

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

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

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

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

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).
  • Security: Bump webpack from 5.90.1 to 5.94.0 (props @dependabot, @peterwilsoncc via #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

2.2.5 — 2024-06-27

2.2.4 — 2024-03-28

2.2.3 — 2024-03-20

2.2.2 — 2023-11-21

2.2.1 — 2023-10-23

2.2.0 — 2023-08-21

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