当前位置:首页>原创文章>WP教程>WordPress SVG文件上传如何实现,让WP支持SVG文件上传

WordPress SVG文件上传如何实现,让WP支持SVG文件上传

默认情况下, WordPress出于安全考虑不支持SVG格式(可缩放矢量图形)文件上传,将下面的代码添到主题functions.php 文件中,保存文件后,就可以在WordPress后台正常上传SVG文件了。

function myplugin_activate() {  
    $upload = wp_upload_dir();  
    $upload_dir = $upload['basedir'];  
    $upload_dir = $upload_dir . '/mypluginfiles';  
    if (! is_dir($upload_dir)) {  
       mkdir( $upload_dir, 0700 );  
    }  
}  
register_activation_hook( __FILE__, 'myplugin_activate' );

还有种方法就是只允许管理员上传SVG图片

// 只允许管理员上传SVG图片
if (current_user_can( 'manage_options' )) {
add_filter('upload_mimes', function ($mimes) {
$mimes['svg'] = 'image/svg+xml';
return $mimes;
});
}
// 媒体库网格模式显示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);
温馨提示:

文章标题:WordPress SVG文件上传如何实现,让WP支持SVG文件上传

文章链接:https://www.jitheme.com/1485.html

更新时间:2022年10月15日

温馨提示:
1.本站大部分内容均收集于网络!若内容若侵犯到您的权益,请发送邮件至:service@jitheme.com,我们将第一时间处理! 2.资源所需价格并非资源售卖价格,是收集、整理、编辑详情以及本站运营的适当补贴,并且本站不提供任何免费技术支持。 3.所有资源仅限于参考和学习,版权归原作者所有,更多请阅读极(子)主题网络服务协议

给TA打赏
共{{data.count}}人
人已打赏
WP教程

WordPress删除文章同时删除文章中的图片和附件

2022-9-14 22:22:43

WP教程

RiproV2-子主题:一年前开发的日主题的子主题【不更新】

2022-10-9 11:19:15

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
购物车
优惠劵
搜索