Описание
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; } );
Отзывы
Участники и разработчики
«Safe SVG» — проект с открытым исходным кодом. В развитие плагина внесли свой вклад следующие участники:
Участники«Safe SVG» переведён на 29 языков. Благодарим переводчиков за их работу.
Перевести «Safe SVG» на ваш язык.
Заинтересованы в разработке?
Посмотрите код, проверьте SVN репозиторий, или подпишитесь на журнал разработки по RSS.
Журнал изменений
2.4.0 — 2025-09-22
- Added: Ability to upload SVGs from more admin locations (props @stormrockwell, @darylldoyle, @wpexplorer, @smerriman, @jeffpaul, @dkotter via #279).
- Changed: Added
$attachment_idargument to filterssafe_svg_use_width_height_attributesandsafe_svg_dimensions(props @roborourke, @dkotter via #278). - Fixed: Inconsistent or incorrect data type for
$svgargument in the filterssafe_svg_use_width_height_attributesandsafe_svg_dimensions(props @roborourke, @dkotter via #278).
2.3.3 — 2025-08-13
- Security: Update the
enshrined/svg-sanitizepackage from0.19.0to0.22.0to fix an issue with case-insensitive attributes slipping through the sanitiser and address PHP 8.4 deprecation warnings (props @darylldoyle, @sudar, @georgestephanis, @dkotter, @realazizk via #268, #272). - Security: Bump
form-datafrom 4.0.0 to 4.0.4 (props @dependabot, @faisal-alvi via #270). - Security: Bump
tmpfrom 0.2.3 to 0.2.5 and@inquirer/editorfrom 4.2.9 to 4.2.16 (props @dependabot, @dkotter via #271).
2.3.2 — 2025-07-21
- Fixed: Visual parity between the front end and the block editor (props @s3rgiosan, @dkotter via #261, #266).
- Changed: Bump WordPress «tested up to» version 6.8 (props @godleman, @jeffpaul, @dkotter via #251, #254).
- Changed: Bump WordPress minimum supported version to 6.6 (props @godleman, @jeffpaul, @dkotter via #254).
- Security: Bump
wsfrom 7.5.10 to 8.18.0,@wordpress/scriptsfrom 27.9.0 to 30.6.0,nanoidfrom 3.3.7 to 3.3.8 andmochafrom 10.2.0 to 11.0.1 (props @dependabot, @peterwilsoncc via #245). - Security: Bump
@babel/runtimefrom 7.23.9 to 7.27.0,axiosfrom 1.7.4 to 1.8.4,cookiefrom 0.4.2 to 0.7.1,expressfrom 4.21.0 to 4.21.2 and@wordpress/e2e-test-utils-playwrightfrom 0.26.0 to 1.20.0 (props @dependabot, @dkotter via #250). - Security: Bump
http-proxy-middlewarefrom 2.0.6 to 2.0.9 (props @dependabot, @iamdharmesh via #253). - Security: Bump
tar-fsfrom 3.0.8 to 3.0.9 (props @dependabot, @dkotter via #258). - Security: Bump
bytesfrom 3.0.0 to 3.1.2 andcompressionfrom 1.7.4 to 1.8.1 (props @dependabot, @dkotter via #265).
2.3.1 — 2024-12-05
- Исправлено: Отменены изменения, внесенные в способ определения пользовательских размеров для SVG (props @dkotter, @martinpl, @subfighter3, @smerriman, @gigatyrant, @jeffpaul, @iamdharmesh через #238).
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
webpackfrom 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
- Изменено: Обновление 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). - Security: Bump
axiosfrom 1.6.7 to 1.7.4 (props @dependabot, @faisal-alvi via #218).
