Home >CMS Tutorial >WordPress >WordPress SVG Support: How to Enable SVGs in WordPress
This tutorial explains how to add SVG support to WordPress and optimize its display within the media library. SVGs offer scalability, responsiveness, and smaller file sizes compared to raster images, but WordPress, due to security concerns about potential JavaScript injection, doesn't natively support them.
Why WordPress Doesn't Support SVGs (By Default): The core issue is security. Unlike raster images, SVGs are vector-based and can potentially contain malicious JavaScript, posing a risk if uploaded by users with varying access levels.
Enabling SVG Uploads: To add SVG support, modify the upload_mimes
filter using a child theme's functions.php
or a custom plugin:
<code class="language-php">function add_svg_upload_support($file_types){ $new_filetypes = array('svg' => 'image/svg+xml'); return array_merge($file_types, $new_filetypes); } add_filter('upload_mimes', 'add_svg_upload_support');</code>
This code adds 'svg' with its MIME type to the allowed file types.
Improving SVG Display in the Media Library: WordPress's default display of SVGs in the grid view is suboptimal. To improve this, use JavaScript and AJAX with Mutation Observers to dynamically update previews. This involves creating a custom AJAX function to fetch the SVG URL and replacing the default placeholder with the actual SVG image. Admin CSS adjustments are also necessary to ensure correct display across different sections of the WordPress admin.
Admin CSS Tweaks: To prevent SVGs from collapsing due to missing height/width attributes, add this CSS:
<code class="language-css">table.media .column-title .media-icon img[src*='.svg'], img[src*='.svg'] { width: 100%; height: auto; }</code>
This ensures proper display in the grid and column views of the media library, as well as on the front-end.
This comprehensive approach ensures better management and display of SVGs within WordPress, enhancing the user experience. Remember to consider security implications and potentially use a plugin that sanitizes uploaded SVGs for added protection.
The above is the detailed content of WordPress SVG Support: How to Enable SVGs in WordPress. For more information, please follow other related articles on the PHP Chinese website!