介绍
这篇文章将为大家详细讲解有关让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格式图片并显示在媒体库中的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。