web-dev-qa-db-fra.com

se télécharger des dimensions SVG sur le front-end

Après avoir transféré avec succès une image SVG via le programme de téléchargement de média principal de WordPress à l'aide d'un plug-in tiers tel que Safe SVG de Daryll Doyle, comment obtenir les dimensions de l'image stockées dans les attributs width, height ou viewBox du fichier SVG utiliser en mode frontal avec des fonctions WordPress telles que wp_get_attachment_image_src()?

Contrairement à d'autres types d'images telles que PNG et JPEG, WordPress n'enregistre pas les dimensions de l'image SVG dans son système.

Voici un PNG régulier:  enter image description here 

Et voici une image SVG:  enter image description here 

Peut-être pourrions-nous utiliser une sorte de crochet dans le functions.php du thème qui se déclenche chaque fois que vous téléchargez un fichier via le back-end de WordPress afin d'acquérir ces dimensions et de les écrire directement dans la base de données pour cette pièce jointe?

Merci!

2
Vadim H

Je suis d'accord avec Tom J Nowell sur l'utilisation de SVG, mais si le téléchargement est une image réelle, vous pouvez accéder aux attributs de pièce jointe en utilisant, comme vous l'avez suggéré, wp_get_attachment_image_src.

En réalité, ces dimensions sont déjà enregistrées et stockées lors de l’utilisation du WP Media Uploader. Il est probable que le plug-in que vous utilisez utilise le WP Media Uploader.

Quatre attributs sont stockés (0 = URL, 1 = Largeur, 2 = Hauteur, 3 = is_intermediate) si la pièce jointe est une image, false si ce n'est pas une image.

Vous pouvez donc appeler et faire écho à ces attributs comme dans cet exemple:

$img_atts = wp_get_attachment_image_src(get_post_thumbnail_id( $post->ID ), 'medium');
$img_src = $img_atts[0];

J'utilise ceci pour faire écho aux dimensions d'une image (atts 1 et 2) pour créer des balises OG par message pour og: image: width et og: image: height (avec d'autres balises OG).

Vous pouvez trouver plus d'informations ici: https://developer.wordpress.org/reference/functions/wp_get_attachment_image_src/

1
Trisha