Problem mit dem Dateityp wp_get_attachment_image () und SVG

Ich versuche, SVG-Bild mit wp_get_attachment_image() aber es erzeugt sehr seltsame Ausgabe am vorderen Ende der Website.

Um den SVG-Dateityp zu unterstützen, habe ich zuerst die folgende function in der functions.php Datei meines Themes hinzugefügt

 /*** enable svg support ***/ function cc_mime_types($mimes) { $mimes['svg'] = 'image/svg+xml'; return $mimes; } add_filter('upload_mimes', 'cc_mime_types'); 

In meiner Theme-Datei versuche ich dann, die SVG-Bilder folgendermaßen zu verwenden:

 $image_id = 3679; echo wp_get_attachment_image( $image_id, array( 57, 58 ), false, array( "class" => "icon" ) ); 

Also sollte es einen HTML-Code wie folgt erzeugen:

  

Stattdessen erzeugt es HTML wie folgt:

 briefcase 

Wie Sie anhand der width="1" und height="1" , wird dieses Bild nicht angezeigt. Aber was ich nicht verstehe ist, woher dieser Wert kommt, da ich das nicht überlasse.

Kennt jemand eine Lösung für dieses Problem?

Solutions Collecting From Web of "Problem mit dem Dateityp wp_get_attachment_image () und SVG"

WordPress hat Probleme mit den Attributen width und height für SVGs. Die Attribute width und height können für SVGs mit diesem Code aus dem trac Ticket # 26256 entfernt werden .

 /** * Removes the width and height attributes of  tags for SVG * * Without this filter, the width and height are set to "1" since * WordPress core can't seem to figure out an SVG file's dimensions. * * For SVG:s, returns an array with file url, width and height set * to null, and false for 'is_intermediate'. * * @wp-hook image_downsize * @param mixed $out Value to be filtered * @param int $id Attachment ID for image. * @return bool|array False if not in admin or not SVG. Array otherwise. */ function wpse240579_fix_svg_size_attributes( $out, $id ) { $image_url = wp_get_attachment_url( $id ); $file_ext = pathinfo( $image_url, PATHINFO_EXTENSION ); if ( is_admin() || 'svg' !== $file_ext ) { return false; } return array( $image_url, null, null, false ); } add_filter( 'image_downsize', 'wpse240579_fix_svg_size_attributes', 10, 2 );