Entfernen Sie das Höhenattribut von wp_get_attachment

Ich fand diese großartige Lösung: Stoppen Sie WordPress von hardcoding img Breite und Höhe Attribute

Aber ich habe mich gefragt, ob ich es nur in einem bestimmten Fall tun könnte und nicht auf der ganzen Seite, weil es andere Dinge vermasselt. Dies wäre der Fall:

ID, 'six', false, $default_attr); ?> 

Es würde auch funktionieren, nur die Höhe, aber nicht die Breite der gesamten Site zu entfernen.

Solutions Collecting From Web of "Entfernen Sie das Höhenattribut von wp_get_attachment"

Sie können auch die Daten für die Breite und Höhe eines Bildes erhalten.

 $src = wp_get_attachment_image_src( $attachment_id, 'full' ); var_dump($src); 

die Ausgabe von var_dump wie var_dump :

 array 0 => string 'http://example.com/wp-content/uploads/2009/08/DSC00261.JPG' (length=63) 1 => int 1632 2 => int 1224 3 => boolean false 

Die Ergebnisse bedeuten:

 $src[0] => url $src[1] => width $src[2] => height $src[3] => icon 

Das hat für mich funktioniert.

 function remove_width_and_height_attribute( $html ) { return preg_replace( '/(height|width)="\d*"\s/', "", $html ); } 

und dann ändern

 wp_get_attachment_image_src( $attachment_id, 'full' ); 

zu

 remove_width_and_height_attribute(wp_get_attachment_image_src( $attachment_id, 'full' )); 

Ein spezifischer Fall und nicht in der ganzen Site.

Fx. Wenn Sie wide = “400” aus WordPress eine HTML-Ausgabefunktion entfernen möchten, können Sie dies tun:

Irgendwo in einer Datei:

 ob_start(); // Start buf wp_get_attachment_image($imageID, 'full', false); //'full' = size $htmlString = ob_get_clean(); // output to variable echo preg_replace('/width="\d*"/','',$variable); // Remove width attribute and whatever digit inside. 

Vielleicht nicht die eleganteste Lösung, aber es macht den Job fertig.