继续分享wordpress建站教程。默认情况下wordpress是不支持直接上传SVG格式图片的,因为SVG格式图片是由代码绘制,这很容易被动手脚,有一定的安全隐患。但是SVG格式图片的优势也非常明显,它是矢量图,可以无损放大缩小,体积也非常小,不怎么影响网站打开速度。
下面给大家分享两个开启SVG格式图片上传权限的方法。
// 只允许管理员上传SVG图片
if (current_user_can( 'manage_options' )) {
add_filter('upload_mimes', function ($mimes) {
$mimes['svg'] = 'image/svg+xml';
return $mimes;
});
}
把上面的代码添加到当前wordpress建站使用主题的functions.php文件中即可。开通SVG格式上传权限后,媒体库是不能直接预览的,所以我们还可以继续在functions.php文件中添加下面的代码。
// 媒体库列表模式显示SVG图片
add_action('admin_head', function () {
echo "<style>table.media .column-title .media-icon img[src*='.svg']{width: 100%;height: auto;}.components-responsive-wrapper__content[src*='.svg'] {position: relative;}</style>";
});
// 媒体库网格模式显示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图片上传的方法稍微麻烦一些,而且也不是很安全。
同类型的插件有很多,这里推荐的插件是Safe SVG,它不仅可以支持SVG格式图片上传,还可以对SVG文件进行检查,可以在一定程度上避免一些潜在的风险。
© Copyright 2024. 悦然网络工作室/悦然wordpress建站 专注中小企业wordpress建站 All Rights Reserved.网站地图
本站图片来源为Pexels、Pixabay、Freepik、Unsplash等图片库的免费许可,CC0协议;还有部分为自己手绘,版权碰瓷请自重!法律服务:law@yueranseo.com 蜀ICP备20016391号-1 川公网安备 51011502000367号
微信联系