繼續分享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號
?
?
?
?
微信聯系