Bei Verwendung von wp_get_attachment_image tritt ein Problem beim Entfernen der Breite und Höhe aus meinen Anhangsbildern auf. Dies ist, was ich benutze, um das Bild anzuzeigen
<?php echo $image = wp_get_attachment_image( $entry['slide_image_id'], true, 'full'); ?>
Wie es aussieht der Quellcode
<img width="150" height="108" src="http://website:8888/wp-content/uploads/2015/12/cupcakes-and-cosmetics-logo.png" class="attachment-1 size-1" alt="cupcakes-and-cosmetics-logo" />
Ich möchte, dass es so angezeigt wird
<img src="http://website:8888/wp-content/uploads/2015/12/cupcakes-and-cosmetics-logo.png" class="attachment-1 size-1" alt="cupcakes-and-cosmetics-logo" />
Das Bild wird aus einem wiederholbaren Dateifeld mit einem Eintrag mit der ID slide_image_id abgerufen. Ich habe mich umgesehen und festgestellt, dass ich wp_get_attachment_image_url verwenden soll, aber wenn ich es mit meinem obigen Code verwende, wird das Bild nicht angezeigt. Gibt es etwas, was ich falsch mache?
<?php echo $image = wp_get_attachment_image_url( $entry['slide_image_id'], true, 'full'); ?>
Randnotiz: $ entry ['slide_image_id'] wird verwendet, um mein wiederholbares Dateifeld aufzurufen.
custom-field
attachments
images
user3756781
quelle
quelle
wp_get_attachment_image_url()
Gibt eine URL zurück - kein Bildelement.add_filter('wp_get_attachment_image_attributes' ...
außer dass nur Höhe und Breite fest codiert sind.Antworten:
Ihre Argumente für beide
wp_get_attachment_image_url()
undwp_get_attachment_image()
sind in der falschen Reihenfolge - überprüfen Sie die verknüpfte Dokumentation für Details. Gibt außerdemwp_get_attachment_image_url()
eine URL zurück - kein tatsächliches Bildelement.Leider ist die
wp_get_attachment_image()
Funktion derzeit (ab WordPress 4.4.1) fest codiert, um die Attributewidth
und auszugebenheight
<img>
(siehe Ticket Nr. 14110 ), sodass Sie das Bild-Markup selbst erstellen müssen. Dies kann durch Hinweise auswp_get_attachment_image()
der Quelle erfolgen :quelle
<img>
Attributegenerierungsbits vonwp_get_attachment_image()
- obwohl ich diesrcset
undsizes
Teile, die für reaktionsfähige Bilder verwendet wurden, weggelassen habe. Wenn diese benötigt werden, istget_sizeless_attachment_image()
es ratsam , eine Funktion zu erstellen.Problemumgehung
Ich habe einige Kerngrabungen / Tests durchgeführt und eine Problemumgehung durch den
wp_constrain_dimensions
Filter gefunden:Dies scheint es uns zu ermöglichen, die Höhen- und Breitenattribute aus dem generierten HTML-Bild von zu entfernen
wp_get_attachment_image()
, ohne die Reg-Ex-Kanons herauszuholen. Wir könnten denwp_get_attachment_image_src
Filter auch auf ähnliche Weise verwenden, um die Breite / Höhe zu entfernen, aber die URL beizubehalten .Anmerkungen
Diese Problemumgehung entfernt das
srcset
undsizes
auch Attribute. Aber es ist auch möglich , die festlegen srcset und Größen Attribute durch das vierte$attr
Eingabeargument.Wie von @bosco erwähnt, haben Sie die geschalteten Symbol und Größe Eingabeargumente in:
Verwenden Sie stattdessen Folgendes:
quelle
Ich habe einfach CSS für diesen verwendet. Es funktioniert nicht in allen Szenarien, aber oft genug. Nehmen wir ein 300 x 300 Pixel großes Bild:
Dies schränkt die Abmessungen des Bildes ein, ohne das Verhältnis von Breite zu Höhe zu verlieren. Ansonsten können Sie auch REGEX verwenden:
Dies waren einige Alternativen. Viel Glück.
quelle