Описание
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).
Плагин сообщества
Этот плагин разработан и поддерживается сообществом. Внесите свой вклад в этот плагин
Мета
- Версия 2.4.0
- Обновление: 3 месяца назад
- Активных установок: 1+ млн
- Версия WordPress 6.6 или выше
- Совместим вплоть до: 7.0
- Версия PHP 7.4 или выше
-
Языки
Belarusian, Catalan, Chinese (Taiwan), Czech, Dutch, Dutch (Belgium), English (Australia), English (Canada), English (New Zealand), English (UK), English (US), French (France), Galician, German, Hungarian, Italian, Japanese, Korean, Marathi, Persian, Polish, Portuguese (Portugal), Russian, Spanish (Chile), Spanish (Colombia), Spanish (Ecuador), Spanish (Spain), Spanish (Venezuela), Swedish и Ukrainian.
- Метки:
- Дополнительно
