Загрузка SVG-файлов в WordPress

Здесь вы найдете множество полезной информации о том, как разработать сайт с нуля, создать качественный контент и привлечь аудиторию.
Аватара пользователя
Михаил Молчанов Подтверждён
Администратор форума
Администратор форума
Сообщения: 13366
Стаж: 1 год 11 месяцев
Откуда: Москва
Настроение:
Пол:
Контактная информация:

Загрузка SVG-файлов в WordPress

Непрочитанное сообщение Михаил Молчанов Подтверждён »

SVG (Scalable Vector Graphics) – это современный формат изображений, который становится все популярнее благодаря своим преимуществам перед растровыми изображениями, такими как PNG или JPG. Однако, по умолчанию WordPress не поддерживает загрузку SVG-файлов через стандартную медиатеку. Это связано с тем, что SVG является векторным форматом, представляющим собой XML-код, который потенциально может содержать вредоносный контент. Поэтому разработчики WordPress решили ограничить возможность загрузки таких файлов для безопасности пользователей.

Почему WordPress блокирует загрузку SVG?

WordPress, как система управления контентом (CMS), ориентирована на безопасность своих пользователей. SVG-файлы могут представлять угрозу, поскольку они содержат код, который злоумышленники могут использовать для внедрения вредоносных скриптов или выполнения других нежелательных действий на сайте. По этой причине WordPress по умолчанию запрещает загрузку SVG-файлов через медиабиблиотеку.

Тем не менее, существует несколько способов обойти этот запрет и безопасно загрузить SVG-изображения на ваш сайт.

Вариант 1: Использование плагинов

Самый простой способ разрешить загрузку SVG-файлов – это использование специальных плагинов. Вот некоторые популярные плагины:

Safe SVG

Описание: Этот плагин позволяет безопасно загружать SVG-файлы в WordPress. Он проверяет содержимое файла на наличие подозрительных элементов и разрешает загрузку только тех файлов, которые соответствуют стандартам безопасности.

Установка:

  1. Перейдите в панель администратора вашего сайта WordPress.
  2. Выберите «Плагины» → «Добавить новый».
  3. Найдите плагин Safe SVG, используя поисковую строку.
  4. Установите и активируйте плагин.

Теперь вы сможете загружать SVG-файлы через стандартную медиатеку WordPress.

SVG Support

Описание: Плагин SVG Support также предоставляет возможность безопасной загрузки SVG-файлов. Помимо этого, он добавляет дополнительные функции, такие как настройка размеров и цветов SVG-изображений прямо в редакторе контента.

Установка:

  1. Перейдите в панель администратора вашего сайта WordPress.
  2. Выберите «Плагины» → «Добавить новый».
  3. Найдите плагин SVG Support, используя поисковую строку.
  4. Установите и активируйте плагин.

После активации плагина вы сможете загружать SVG-файлы и управлять ими непосредственно в редакторе страниц и постов.

Вариант 2: Изменение функций темы

Если вы предпочитаете не использовать плагины, то можете вручную добавить поддержку SVG в вашу тему. Для этого вам потребуется немного знаний PHP и доступа к файлам вашей темы.

Шаг 1: Добавление MIME-типа для SVG

Для начала нужно зарегистрировать SVG как допустимый файловый тип в WordPress. Откройте файл functions.php вашей активной темы и добавьте следующий код:

Код: Выделить всё

function add_svg_to_upload_mimes($mimes = array()) {
    $mimes['svg'] = 'image/svg+xml';
    return $mimes;
}
add_filter('upload_mimes', 'add_svg_to_upload_mimes');

Этот код добавит SVG в список поддерживаемых типов файлов, позволяя загружать их через медиатеку.

Шаг 2: Обеспечение безопасности

Однако просто добавления поддержки SVG недостаточно. Важно убедиться, что загружаемые файлы безопасны. Для этого рекомендуется использовать функцию проверки содержимого SVG-файла. Добавьте следующий код в тот же файл functions.php:

Код: Выделить всё

function sanitize_svg_file( $data, $file, $filename, $mimes ) {
    if ( $data['type'] == 'image/svg+xml' ) {
        // Проверка на наличие вредоносного кода
        $contents = file_get_contents( $file );
        
        // Удаляем все теги script и style
        $cleaned = preg_replace( '/<script.*?<\/script>/is', '', $contents );
        $cleaned = preg_replace( '/<style.*?<\/style>/is', '', $cleaned );
        
        // Сохраняем очищенный файл
        file_put_contents( $file, $cleaned );
    }
    
    return $data;
}
add_filter( 'wp_handle_upload_prefilter', 'sanitize_svg_file', 10, 4 );

Этот код удаляет все теги <script> и <style>, которые могут содержать вредоносный код, из загружаемого SVG-файла.

Заключение

Хотя WordPress по умолчанию не поддерживает загрузку SVG-файлов, существуют способы обойти это ограничение. Использование плагинов, таких как Safe SVG или SVG Support, является самым простым и безопасным способом. Если же вы хотите внести изменения самостоятельно, убедитесь, что вы правильно реализовали проверку безопасности, чтобы избежать потенциальных угроз.

Выбор метода зависит от ваших предпочтений и уровня технических знаний. Но помните, что безопасность всегда должна оставаться приоритетом при работе с любым типом файлов на вашем сайте.

Вернуться в «Сайт, блог, одностраничные сайты, создание контента»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость