Here’s a code snippet that you can use to add support for SVG images in WordPress:
function add_svg_support( $mimes ) { $mimes['svg'] = 'image/svg+xml'; return $mimes; } add_filter( 'upload_mimes', 'add_svg_support' );
This code adds the SVG MIME type to the list of allowed file types in WordPress. You can add this code to your theme’s functions.php file or in a custom plugin.
Another thing you can do is to sanitize the SVG file before uploading it to the media library, this way you can prevent any security vulnerabilities.
function sanitize_svg_upload( $file ) { $file_ext = strtolower( pathinfo( $file['name'], PATHINFO_EXTENSION ) ); if ( $file_ext !== 'svg' ) { return $file; } $file['name'] = sanitize_file_name( $file['name'] ); $file['name'] = preg_replace( '/[^a-z0-9_\-\.]/i', '', $file['name'] ); $file['name'] = preg_replace( '/[\s-]+/', '-', $file['name'] ); $file['name'] = preg_replace( '/^[\s-]/', '', $file['name'] ); $file['name'] = preg_replace( '/[\s-]$/', '', $file['name'] ); $file['name'] = str_replace( 'svg-', 'svg.', $file['name'] ); $file_type = wp_check_filetype( $file['name'], array( 'svg' => 'image/svg+xml' ) ); $file['type'] = $file_type['type']; return $file; } add_filter( 'wp_handle_upload_prefilter', 'sanitize_svg_upload' );
Please test these codes in development environment before deploying it to production.