WordPress doesn’t allow to upload SVG files by default.
Add svg file type in allowed file types list
function wp_mime_types($mimes)
{
$mimes['svg'] = 'image/svg+xml';
return $mimes;
}
add_filter('upload_mimes', 'wp_mime_types');
Fix for displaying svg files in media library
function wp_fix_svg() {
echo '<style type="text/css">
.attachment-266x266, .thumbnail img {
width: 100% !important;
height: auto !important;
}
</style>';
}
add_action( 'admin_head', 'wp_fix_svg' );
Attempt to determine the real file type of a file
function wp_check_filetype($data, $file, $filename, $mimes)
{
global $wp_version;
if( $wp_version !== '4.7.1' ){
return $data;
}
$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', 'wp_check_filetype', 10, 4 );