Как разрешить загрузку SVG в WordPress? — Сайт под ключ

Как разрешить загрузку SVG в WordPress?

Как разрешить загрузку SVG в WordPress?

Достаточно часто начинающие разработчики сайтов встречаются со следующими ошибками: «Извините, вам не разрешено загрузить этот тип файла» или «Извините, этот тип файла не разрешен по соображениям безопасности» при попытке загрузить SVG-изображение в библиотеку Медиафайлов.

В этом материале я расскажу, как бороться с такой ошибкой. Мы покажем, как избавиться от этой проблемы 3 актуальными на 2022 год способами.

Способ №1

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

Переходим к файлу functions.php и вставляем следующий код:

add_filter( 'upload_mimes', 'svg_upload_allow' );

# Добавляет SVG в список разрешенных для загрузки файлов.
function svg_upload_allow( $mimes ) {
	$mimes['svg']  = 'image/svg+xml';

	return $mimes;
}

add_filter( 'wp_check_filetype_and_ext', 'fix_svg_mime_type', 10, 5 );

# Исправление MIME типа для SVG файлов.
function fix_svg_mime_type( $data, $file, $filename, $mimes, $real_mime = '' ){

	// WP 5.1 +
	if( version_compare( $GLOBALS['wp_version'], '5.1.0', '>=' ) )
		$dosvg = in_array( $real_mime, [ 'image/svg', 'image/svg+xml' ] );
	else
		$dosvg = ( '.svg' === strtolower( substr($filename, -4) ) );

	// mime тип был обнулен, поправим его
	// а также проверим право пользователя
	if( $dosvg ){

		// разрешим
		if( current_user_can('manage_options') ){

			$data['ext']  = 'svg';
			$data['type'] = 'image/svg+xml';
		}
		// запретим
		else {
			$data['ext'] = $type_and_ext['type'] = false;
		}

	}

	return $data;
}

Теперь файл можно сохранить. Проверяем, работает ли загрузка SVG-файлов. Если этот способ не помог, то переходим ко второму.

Способ №2

Порой первый способ помогает не всем сайтам на WordPress, поэтому мы расскажем о втором, который также стоит попробовать.

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

add_filter( 'wp_check_filetype_and_ext', 'fix_svg_mime_type', 10, 5 );

# Исправление MIME типа для SVG файлов.
function fix_svg_mime_type( $data, $file, $filename, $mimes, $real_mime = '' ){

	// WP 5.1 +
	if( version_compare( $GLOBALS['wp_version'], '5.1.0', '>=' ) )
		$dosvg = in_array( $real_mime, [ 'image/svg', 'image/svg+xml' ] );
	else
		$dosvg = ( '.svg' === strtolower( substr($filename, -4) ) );

	// mime тип был обнулен, поправим его
	// а также проверим право пользователя
	if( $dosvg ){

		// разрешим
		if( current_user_can('manage_options') ){

			$data['ext']  = 'svg';
			$data['type'] = 'image/svg+xml';
		}
		// запретим
		else {
			$data['ext'] = $type_and_ext['type'] = false;
		}

	}

	return $data;
}

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

Способ №3

Не хочется разбираться в код, а наличие лишних установленных плагинов вас не отталкивает? Тогда советую воспользоваться плагином “SVG Support” от автора “Benbodhi”.

SVG Support WordPress

Установите плагин из официального репозитория WordPress. Далее ничего настраивать не нужно, все должно заработать.

Подведем итоги

В этом материале мы рассказали о 3 актуальных способах, как избавиться от ошибке при загрузке SVG файлов на ваш сайт на WordPress.

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

Интересует разработка сайта? Хотите получить больше новых знаний? Тогда подписывайтесь на нашу группу в ВКонтакте и вступайте в нашу беседу, чтобы не пропустить новые познавательные материалы о мире веб-разработки.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

О нас

Привет! Интересно читать нас? Уделите пару минут своего времени, узнайте больше о нашей команде!

Связь с нами
Получить подарок!