当前位置:主页 > 聚焦 >

如何让WordPress支持上传SVG格式图片并显示在媒体

时间:2020-12-09 14:32:30

  下面由WordPress教程栏目给大家介绍让WordPress支持上传SVG格式图片并显示在媒体库中的方法,希望对需要的朋友有所帮助!

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

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

  可以将下代码添加当前主题函数模板functions.php中:

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

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

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

  // 媒体库列表模式显示SVG图片onents-responsive-wrapper__content[src*='.svg'] {position: relative;}</style>"; });

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

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

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

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

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

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

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

热点推荐
1 赵长鹏:人工智能、全球局势及四年周期

消息,Binance创始人赵长鹏表示,过去一年加密市场下跌50%是由人工智能、全球局势及四年周期...

2 CZ:加密市场50%回调受多因素影响

消息,CZ在接受CoinDesk采访时表示,加密市场过去一年的50%回调并非由单一因素导致,而是地缘...

3 软银股价暴跌12.53%,因OpenAI考虑推迟1万亿

消息,软银集团股价在东京交易中下跌超过12%,原因是有报道称OpenAI正在考虑将其计划中的1万...

4 俄袭击了该公司在波尔塔瓦和哈尔科夫地

消息,乌克兰国家天然气公司称,俄罗斯袭击了该公司在波尔塔瓦和哈尔科夫地区的生产设施...

5 新钱包存入63万美元USDC并开设290万美元

消息,某用户创建了一个新钱包,存入约63万美元的USDC,并以10倍杠杆开设了290万美元的XRP空单...

6 未知钱包转入1349枚BTC,价值约8123万美元

消息,据Whale Alert监测,未知钱包刚刚转入1,349枚BTC,按实时价格计算约合81,232,738美元。...

7 美国国税局发布加密资产没收通知,涉及

消息,吴说获悉,美国国税局刑事调查部门于6月26日发布官方没收通知,列出多笔已扣押并拟...

8 OpenAI账号与计费系统同步故障:ChatGPT网页

消息,OpenAI账号与计费系统出现同步故障,导致ChatGPT网页端服务等级混乱与API限流加剧。部分...

9 Anthropic:美国政府通知可重新部署Claude

消息,吴说获悉,Anthropic官方发文称,美国政府已通知公司,其最强网络安全模型Claude Mythos...

10 Binance Charity向委内瑞拉地震受灾地区捐赠

消息,据Binance官方博客称,受6月25日委内瑞拉北部连续地震影响,Binance Charity将向受灾地区用...

成都来彰科技 蜀ICP备2025134723号-1

资讯来源互联网,如有版权问题请联系管理员删除。