Как разрешить загрузку 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

Как установить:

  1. Перейдите в «Плагины» → «Добавить новый»
  2. Найдите «Safe SVG»
  3. Установите и активируйте

Как включить предпросмотр 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 перед загрузкой
  • 🔍 Включите предпросмотр для удобства