Home CMS Tutorial WordPress How to make WordPress support uploading SVG format images and displaying them in the media library

How to make WordPress support uploading SVG format images and displaying them in the media library

Dec 09, 2020 pm 01:53 PM
wordpress

The following column WordPress Tutorial will introduce to you how to enable WordPress to support uploading SVG format images and display them in the media library. I hope it will be helpful to friends in need!

How to make WordPress support uploading SVG format images and displaying them in the media library

Due to the characteristics of SVG format images, malicious code may be inserted and the website is easily attacked. Therefore, for security reasons, WordPress does not support uploading SVG format images by default. In addition, unlike It is said on the Internet that SVG format images have such high application value. Except for some small icons on web pages that can use SVG images, there is no advantage in using SVG format for normal color images. However, sometimes you really need this SVG image, such as the LOGO image of my theme. If the PNG image is not very clear on the mobile phone, using the SVG format will not have this problem.

How to make WordPress support uploading SVG format images?

You can add the following code to the current theme function template functions.php:

Let WordPress support uploading SVG, and only administrators have this permission

// 只允许管理员上传SVG图片
if (current_user_can( 'manage_options' )) {
add_filter('upload_mimes', function ($mimes) {
$mimes['svg'] = 'image/svg+xml';
return $mimes;
});
}
Copy after login

Media library list mode Display SVG images

// 媒体库列表模式显示SVG图片
add_action('admin_head', function () {
echo "<style>table.media .column-title .media-icon img[src*=&#39;.svg&#39;]{width: 100%;height: auto;}.components-responsive-wrapper__content[src*=&#39;.svg&#39;] {position: relative;}</style>";
});
Copy after login

There are many similar codes on the Internet, but none of them support the media library grid mode to display SVG images. The following code can be achieved:

// 媒体库网格模式显示SVG图片
function zm_display_svg_media($response, $attachment, $meta){
if($response[&#39;type&#39;] === &#39;image&#39; && $response[&#39;subtype&#39;] === &#39;svg+xml&#39; && class_exists(&#39;SimpleXMLElement&#39;)){
try {
$path = get_attached_file($attachment->ID);
if(@file_exists($path)){
$svg                = new SimpleXMLElement(@file_get_contents($path));
$src                = $response[&#39;url&#39;];
$width              = (int) $svg[&#39;width&#39;];
$height             = (int) $svg[&#39;height&#39;];
$response[&#39;image&#39;]  = compact( &#39;src&#39;, &#39;width&#39;, &#39;height&#39; );
$response[&#39;thumb&#39;]  = compact( &#39;src&#39;, &#39;width&#39;, &#39;height&#39; );
 
$response[&#39;sizes&#39;][&#39;full&#39;] = array(
&#39;height&#39;        => $height,
&#39;width&#39;         => $width,
&#39;url&#39;           => $src,
&#39;orientation&#39;   => $height > $width ? &#39;portrait&#39; : &#39;landscape&#39;,
);
}
}
catch(Exception $e){}
}
return $response;
}
add_filter(&#39;wp_prepare_attachment_for_js&#39;, &#39;zm_display_svg_media&#39;, 10, 3);
Copy after login

The other one has relatively less code. It supports the media library grid mode to display SVG image codes. However, if the debugging mode is turned on, there will be an error message, but it will not affect the use.

// 媒体库网格模式显示SVG图片
function zm_svg_metadata($data, $post_id) {
$data = array(
&#39;sizes&#39; => array(
&#39;large&#39; => array(
&#39;file&#39; => pathinfo(wp_get_attachment_url($post_id), PATHINFO_BASENAME)
)
)
);
return $data;
}
add_filter(&#39;wp_get_attachment_metadata&#39;, &#39;zm_svg_metadata&#39;, 10, 2);
Copy after login

As for what this function is used for, it depends on whether the theme you are using requires this function. It can also be used on web pages to obtain links after direct FTP upload.

If you find it troublesome to mess with the code, you can use the following related plug-ins:

SVG Support
Enable SVG
Safe SVG(据说该插件可以检测并去除SVG中的恶意代码,与250+110有的一拼)
WP SVG images
Easy SVG Support
Enable SVG Uploads
......
Copy after login

The above is the detailed content of How to make WordPress support uploading SVG format images and displaying them in the media library. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to adjust the wordpress article list How to adjust the wordpress article list Apr 20, 2025 am 10:48 AM

There are four ways to adjust the WordPress article list: use theme options, use plugins (such as Post Types Order, WP Post List, Boxy Stuff), use code (add settings in the functions.php file), or modify the WordPress database directly.

What to do if there is an error in wordpress What to do if there is an error in wordpress Apr 20, 2025 am 11:57 AM

WordPress Error Resolution Guide: 500 Internal Server Error: Disable the plug-in or check the server error log. 404 Page not found: Check permalink and make sure the page link is correct. White Screen of Death: Increase the server PHP memory limit. Database connection error: Check the database server status and WordPress configuration. Other tips: enable debug mode, check error logs, and seek support. Prevent errors: regularly update WordPress, install only necessary plugins, regularly back up your website, and optimize website performance.

How to display wordpress comments How to display wordpress comments Apr 20, 2025 pm 12:06 PM

Enable comments in WordPress website: 1. Log in to the admin panel, go to "Settings" - "Discussions", and check "Allow comments"; 2. Select a location to display comments; 3. Customize comments; 4. Manage comments, approve, reject or delete; 5. Use &lt;?php comments_template(); ?&gt; tags to display comments; 6. Enable nested comments; 7. Adjust comment shape; 8. Use plugins and verification codes to prevent spam comments; 9. Encourage users to use Gravatar avatar; 10. Create comments to refer to

How to write a header of a wordpress How to write a header of a wordpress Apr 20, 2025 pm 12:09 PM

The steps to create a custom header in WordPress are as follows: Edit the theme file "header.php". Add your website name and description. Create a navigation menu. Add a search bar. Save changes and view your custom header.

WordPress website account login WordPress website account login Apr 20, 2025 am 09:06 AM

To log in to a WordPress website account: Visit the login page: Enter the website URL plus "/wp-login.php". Enter your username and password. Click "Login". Verification Two-step Verification (optional). After successfully logging in, you will see the website dashboard.

How to cancel the editing date of wordpress How to cancel the editing date of wordpress Apr 20, 2025 am 10:54 AM

WordPress editing dates can be canceled in three ways: 1. Install the Enable Post Date Disable plug-in; 2. Add code in the functions.php file; 3. Manually edit the post_modified column in the wp_posts table.

Recommended product registration plug-in for easy-to-use wordpress Recommended product registration plug-in for easy-to-use wordpress Apr 20, 2025 am 08:15 AM

There is no perfect WordPress product registration plugin, the choice should be based on actual needs and website size. Recommended plug-ins include: MemberPress: powerful but high-priced, complex configuration Restrict Content Pro: Focus on content restrictions and member management, cost-effective Easy Digital Downloads: Sell digital products, and users register as additional functions

How to add comments to WordPress How to add comments to WordPress Apr 20, 2025 am 11:42 AM

The steps to add a comment in WordPress are as follows: Enable Comments: Check "Allow Comments" to enable comments for a specific article or all articles. Set comment options: Customize comment approval, paging, nested comments and other settings. Add Comment Form: Use the provided code to add the Comment Form to the desired location. Show Comments: Use the provided code to display submitted comments. Reply to comments: Reply to a single comment through the Reply link, or reply to multiple comments using a batch operation. Manage comments: View, delete, approve, and tag comments in the Comments tab.

See all articles