webentwicklung-frage-antwort-db.com.de

wp_get_attachment_image () funktioniert nicht, wenn versucht wird, Attribute mit und height hinzuzufügen

Ich benutze wp_get_attachment_image() , um zu versuchen, ein img-Tag mit den Attributen width und height auszugeben.

Hier ist mein Code:

$thumb_src = wp_get_attachment_image( $id, 'thumbnail', false, array('width'=> '10', 'height' => '10' ));
$thumb_output = "<li>".$thumb_src."</li>";

Ich hatte damit gerechnet:

<li><img width="10" height="10" src="http://..../wp-content/uploads/2011/01/pic-150x150.jpg" class="attachment-thumbnail" alt="pic" width="10" height="10" /></li>

Stattdessen gibt es Folgendes aus:

<li><img width="150" height="150" src="http://..../wp-content/uploads/2011/01/pic-150x150.jpg" class="attachment-thumbnail" alt="pic" width="10" height="10" /></li>

Vielen Dank für jede Hilfe, die jemand geben kann. Ich habe es mit anderen Attributen versucht, wie dem Attribut style, und das Style-Tag wird wie erwartet angezeigt. Ich schätze, ich könnte das Style-Tag verwenden, um die Abmessungen so festzulegen, aber ich verstehe nicht, warum die Methode width/height nicht funktioniert!

1
Sarah

Wie in der Dokumentation beschrieben, gibt es im vierten Parameter der Funktion keine Attribute width und height. Möglicherweise möchten Sie Folgendes tun:

wp_get_attachment_image(
    $id,
    array( 10, 10 )
);

Eine alternative und empfohlene Methode besteht darin, eine Bildgröße festzulegen, die WordPress veranlasst, beim Hochladen ein Miniaturbild für diese Größe zu generieren.

add_action( 'after_setup_theme', 'wpse_132171_create_image_size' );
function wpse_132171_create_image_size() {

    add_theme_support( 'post-thumbnails' );
    add_image_size( 'my_size', 10, 10 ); 
}

Damit können Sie auf diese Größe durch den Slug my_size in wp_get_attachment_image() verweisen:

wp_get_attachment_image( $id, 'my_size' );

Für diese Lösung sollten Sie Ihre Thumbnails neu erstellen, wenn Sie bereits Bilder mit einem Plugin wie "AJAX Thumbnail Rebuild" haben.

Hinweis: Wenn Sie eine array als zweites Argument verwenden, verwendet WordPress attachment-{$val1}x{$val2} (eine Zeichenfolge, die aus den Array-Werten erstellt wurde) als class. Dieses Verhalten bricht ab, sobald Sie das vierte Argument (array attributes) verwenden und dort einen benutzerdefinierten class-Schlüssel hinzufügen. Die benutzerdefinierte class überschreibt, was von core geliefert wird. Dies könnte als Fehler angesehen werden.

2
David