在前端获取上传的SVG维度

时间:2018-10-08 作者:Vadim H

在第三方插件(如Daryll Doyle的Safe SVG)的帮助下,通过WordPress的后端媒体上传器成功上传了一个SVG图像,如何获得存储在SVG文件中的图像尺寸width, height, 或viewBox 要在前端与WordPress函数一起使用的属性,例如wp_get_attachment_image_src() ?

与PNG和JPEG等其他类型的图像不同,WordPress不将SVG图像的尺寸存储到其系统中。

以下是一个常规PNG:enter image description here

这是一个SVG图像:enter image description here

也许我们可以在theme的functions.php 每当您通过WordPress的后端上传文件以获取这些维度并将其直接写入该附件的数据库时,就会触发?

谢谢

1 个回复
SO网友:Trisha

我同意Tom J Nowell对SVG的使用,但是如果上传的是实际的图像,那么可以使用wp\\u get\\u attachment\\u image\\u src访问附件属性。

在使用WP media uploader时,这些维度实际上已经被记录和存储,您使用的插件很可能使用了WP media uploader。

如果附件是图像,则存储四个属性(0=URL,1=宽度,2=高度,3=中间值),如果附件不是图像,则存储false。

因此,您可以调用并回显这些属性,如本例所示:

$img_atts = wp_get_attachment_image_src(get_post_thumbnail_id( $post->ID ), \'medium\');
$img_src = $img_atts[0];
我使用它来回显图像的尺寸(附件1和附件2),以便为OG:image:width和OG:image:height(以及其他OG标记)创建每帖子OG标记。

您可以在此处找到更多信息:https://developer.wordpress.org/reference/functions/wp_get_attachment_image_src/

结束

相关推荐

Media uploads error

我对这个很陌生,昨天刚创建了我的网站。突然,我无法上传任何照片,并且显示了一个错误“上传时出错”。请稍后再试\'。我看到一个使用控制台的建议,它给出了一个错误,表示内容混合,并且我的页面是通过HTTPS加载的,但请求了一个不安全的样式表tp://fonts。googleapis。com/css?家庭=舞蹈+脚本(&P);ver=4.9.8’。此请求已被阻止;内容必须通过HTTPS提供。