Как разрешить загрузку SVG в медифайлы WordPress
По умолчанию WordPress запрещает загрузку SVG-файлов (Scalable Vector Graphics) в медиа-библиотеку по соображениям безопасности. Однако SVG — это векторный формат, идеально подходящий для логотипов, иконок и масштабируемой графики. В этой статье вы узнаете, как включить поддержку SVG в WordPress безопасным способом.
Почему WordPress блокирует SVG?
SVG-файлы содержат код в формате XML, в который можно внедрить JavaScript. Это делает их потенциально опасными для сайта. Чтобы защитить пользователей, WordPress не позволяет загружать SVG по умолчанию.
Как разрешить загрузку SVG в WordPress?
Способ 1: Добавление кода в functions.php
Если вы не хотите устанавливать плагины, можно вручную разрешить загрузку SVG, добавив код в файл вашей темы:
// Разрешить загрузку SVG
function custom_allow_svg_upload($mimes) {
$mimes['svg'] = 'image/svg+xml';
return $mimes;
}
add_filter('upload_mimes', 'custom_allow_svg_upload');
Важно: Этот метод не проверяет содержимое SVG и может быть небезопасным. Используйте его только для администраторов и загружайте файлы из надежных источников.
Способ 2: Установка плагина Safe SVG
Наиболее безопасный способ — установить бесплатный плагин Safe SVG. Он автоматически очищает SVG от вредоносного кода и позволяет безопасно загружать SVG-файлы в медиатеку WordPress.
Преимущества плагина:
- Безопасная загрузка SVG
- Предпросмотр SVG в медиатеке
- Совместимость с редактором Gutenberg
Как установить:
- Перейдите в «Плагины» → «Добавить новый»
- Найдите «Safe SVG»
- Установите и активируйте
Как включить предпросмотр SVG в медиатеке вручную
Если вы используете только код без плагина, SVG может не отображаться в медиатеке. Добавьте этот код в functions.php, чтобы включить предпросмотр:
// Исправить отображение SVG в медиабиблиотеке
function custom_fix_svg_display() {
echo '<style>
.attachment-266x266, .thumbnail img {
width: 100% !important;
height: auto !important;
}
</style>';
}
add_action('admin_head', 'custom_fix_svg_display');
// Исправление MIME-типа для SVG
function custom_check_svg_filetype($data, $file, $filename, $mimes) {
$filetype = wp_check_filetype($filename, $mimes);
return [
'ext' => $filetype['ext'],
'type' => $filetype['type'],
'proper_filename' => $data['proper_filename'],
];
}
add_filter('wp_check_filetype_and_ext', 'custom_check_svg_filetype', 10, 4);
Вывод
SVG — это мощный и гибкий формат, который можно безопасно использовать в WordPress. Наилучшее решение — установить плагин Safe SVG. Если вы предпочитаете ручной способ, обязательно убедитесь, что файлы загружаются только из доверенных источников и доступ к загрузке SVG имеют только администраторы.
Быстрый чеклист
- ✅ Используйте плагин Safe SVG — безопасно и просто
- ❌ Не разрешайте загружать SVG обычным пользователям без фильтрации
- ✅ Проверяйте каждый SVG перед загрузкой
- 🔍 Включите предпросмотр для удобства

