让WordPress支持上传SVG格式图片并显示在媒体库中的方法
发表于:2024-10-23 作者:千家信息网编辑
千家信息网最后更新 2024年10月23日,这篇文章将为大家详细讲解有关让WordPress支持上传SVG格式图片并显示在媒体库中的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。因SVG格式图片特性,可能
千家信息网最后更新 2024年10月23日让WordPress支持上传SVG格式图片并显示在媒体库中的方法
这篇文章将为大家详细讲解有关让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图片add_action('admin_head', function () {echo "";});
网上有很多以上类似的代码,但都不支持媒体库网格模式显示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 SupportEnable SVGSafe SVG(据说该插件可以检测并去除SVG中的恶意代码,与250+110有的一拼)WP SVG imagesEasy SVG SupportEnable SVG Uploads......
关于让WordPress支持上传SVG格式图片并显示在媒体库中的方法就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
图片
媒体
格式
代码
支持
模式
网格
主题
方法
功能
恶意
插件
更多
篇文章
网页
面的
不错
实用
安全
价值
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
服务器如何设置不要显示器
荆州filecoin服务器
云南超频服务器什么价格
易语言 数据库 查询
服务器硬盘状态查询
plc传数据库
关闭开机服务器
静安区信息网络技术服务
江苏正规软件开发标准
软件开发定价
成都水滴互联网科技有限公司
新峰软件开发有限公司
数据库的专业英文词语
河南综合软件开发报价
我的世界服务器禁止副手
数据库怎么创造管理员
联通网络安全知识竞赛
深圳手机云控软件开发商
暑假注意哪些网络安全
寻找霍州市软件开发商
arm服务器芯片
域名服务器由什么托管
我的世界代理服务器
网络技术是否属于信息技术
常州科佳软件开发有限公司
软件开发相关职业认证
esc云服务器能装虚拟化吗
湖南鲸东通互联网科技有限公司
蚌埠通信软件开发定制
佛山智能还款app软件开发