让WordPress支持上传SVG格式图片并显示在媒体库中的方法

  介绍

这篇文章将为大家详细讲解有关让WordPress支持上传SVG格式图片并显示在媒体库中的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

因SVG格式图片特性,可能会被插入恶意代码,网站容易被攻击,所以出于安全考虑WordPress默认不支持SVG格式图片上传,另外不像网上说SVG格式图片有那么高的应用价值,除了一些网页上的小图标可以使用SVG图片外,正常的彩色图片,如果使用SVG格式毫无优势可言。不过有时还确实需要这个SVG图片比如我主题的标志图片,如果使用PNG图片在手机上不是很清晰,采用SVG格式则无此问题。

如何让WordPress支持上传SVG格式图片?

可以将下代码添加当前主题函数模板功能。php中:

让WordPress支持上传SVG,并只管理员有此权限

//,只允许管理员上传SVG图片   if  (current_user_can (, & # 39; manage_options& # 39;,)), {   add_filter (& # 39; upload_mimes& # 39;,, function (交警美元),{   $交警[& # 39;svg # 39;],=, & # 39;图像/svg + xml # 39;;   return 美元哑剧演员;   });   }

媒体库列表模式显示SVG图片

//,媒体库列表模式显示SVG图片   add_action (& # 39; admin_head& # 39;,, function  (), {   echo “& lt; style> table.media  .column-title  .media-icon  img (src *=& # 39; . # 39;]{高度:宽度:100%;汽车;}.components-responsive-wrapper__content (src *=& # 39; . # 39;],{位置:,相对;}& lt;/style>“;   });

网上有很多以上类似的代码,但都不支持媒体库网格模式显示SVG图片、下面的代码可以实现:

//,媒体库网格模式显示SVG图片   function  zm_display_svg_media(反应,美元,依恋,美元,美元元){   if($响应[& # 39;类型# 39;],===,& # 39;图像# 39;,,,,美元反应[& # 39;亚型# 39;],===,& # 39;svg + xml # 39;,,,, class_exists (& # 39; simplexmlelement # 39;)) {   try  {   $ path =, get_attached_file(附件→美元ID);   如果(@file_exists(路径)美元){   svg 美元;,,,,,,,,,,,,,,,=,new  SimpleXMLElement (@file_get_contents(路径)美元);   src 美元;,,,,,,,,,,,,,,,=,美元反应[& # 39;url # 39;];   width 美元;,,,,,,,,,,,,,=,(int),美元svg(& # 39;宽度# 39;);   height 美元;,,,,,,,,,,,,=,(int),美元svg(& # 39;高度# 39;);   $响应[& # 39;图像# 39;],,=,紧凑(,& # 39;src # 39;,, & # 39;宽度# 39;,,& # 39;高度# 39;,);   $响应[& # 39;拇指# 39;],,=,紧凑(,& # 39;src # 39;,, & # 39;宽度# 39;,,& # 39;高度# 39;,);   ,   $响应[& # 39;大小# 39;][& # 39;全# 39;],=,阵列(   & # 39;高度# 39;,,,,,,,,=祝辞,美元的高度,   & # 39;宽度# 39;,,,,,,,,,=祝辞,美元的宽度,   & # 39;url # 39;,,,,,,,,,,,=祝辞,src美元,   & # 39;方向# 39;,,,=祝辞,height 美元;祝辞,width 美元;?,& # 39;肖像# 39;,:,& # 39;景观# 39;   );   }   }   抓住(Exception  $ e) {}   }   return  $反应;   }   add_filter (& # 39; wp_prepare_attachment_for_js& # 39;,, & # 39; zm_display_svg_media& # 39;,,,, 3);

另一个相对代码较少的支持媒体库网格模式显示SVG图片代码,不过如果开启调试模式会有错误提示,但不影响使用。

//,媒体库网格模式显示SVG图片   function  zm_svg_metadata(数据,美元,美元post_id), {   $ data =,阵列(   & # 39;大小# 39;,=祝辞,阵列(   & # 39;大# 39;,=祝辞,阵列(   & # 39;文件# 39;,=祝辞,pathinfo (wp_get_attachment_url (post_id美元),,PATHINFO_BASENAME)   )   )   );   return  $数据;   }   add_filter (& # 39; wp_get_attachment_metadata& # 39;,, & # 39; zm_svg_metadata& # 39;,,,, 2),

至于加这个功能用于什么,那要看你用的主题是否有这个功能需要了,直接FTP上传后获取链接也一样在网页中使用。

嫌折腾代码麻烦,可以使用下面的相关插件:

SVG 支持   SVG Enable    Safe  SVG(据说该插件可以检测并去除SVG中的恶意代码,与250 + 110有的一拼)   WP  SVG 图像   Easy  SVG 支持   Enable  SVG 上传   ……

关于让WordPress支持上传SVG格式图片并显示在媒体库中的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。

让WordPress支持上传SVG格式图片并显示在媒体库中的方法