Описание
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
- Добавлено: Возможность загружать 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
- Исправлено: Отменены изменения, внесенные в способ определения пользовательских размеров для 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).
- Безопасность: Переведите
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).
