wordpress教程

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

我的站长站 2021-03-08 人阅读

网上有很多以上类似的代码,但都不支持媒体库网格模式显示SVG图片,下面的代码可以实现让WordPress支持上传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
相关推荐
  • SVG
  • 在线图片转SVG格式工具源码
    在线图片转SVG格式工具源码

    源码介绍非常简单一款在线图片转SVG格式工具源码,js+html的,无需环境打开即可使用。不想下载可以复制下面代码,保存到HTML文件即可使用。小白不会的就下载源码,已经打包好了。源码截图代码分享 提交...

    html模板 52 1年前
  • SVGcode在线免费图片转SVG矢量图工具
    SVGcode在线免费图片转SVG矢量图工具

    工具介绍SVGcode在线图片转换为SVG工具源码是一个Progressive Web App,可用于将JPG、PNG、GIF、WebP、AVIF等光栅图像转换为SVG格式的矢量图形。它使用文件系统访问API、异步剪贴板API、文件处理A...

    在线工具 151 2年前
  • 如何让WordPress支持上传SVG格式图片

    网上有很多以上类似的代码,但都不支持媒体库网格模式显示SVG图片,下面的代码可以实现让WordPress支持上传SVG格式图片:// 媒体库网格模式显示SVG图片function zm_display_svg_media($response, $attachment, $meta){if($response['type'] === &...

    wordpress教程 79 3年前
最新更新