Korrekte Verwendung von wp_get_attachment_image() in WordPress

Lesezeit: 3 Minuten

Ich suche nach der richtigen Art, wp_get_attachment_image() zu verwenden.

Der folgende Code:

<?php
    $args = array(
        'type' => 'attachment',
        'category_name' => 'portfolio'
        );
    $attachments = get_posts($args);
    print_r($attachments);
?>

Erzeugt das folgende Ergebnis:

Array
(
    [0] => stdClass Object
        (
            [ID] => 54
            [post_author] => 1
            [post_date] => 2010-06-22 00:32:46
            [post_date_gmt] => 2010-06-22 00:32:46
            [post_content] => <a href="http://localhost/wordpress/wp-content/uploads/2010/06/Capture.jpg"><img class="alignnone size-medium wp-image-55" title="Capture" src="http://localhost/wordpress/wp-content/uploads/2010/06/Capture-300x114.jpg" alt="" width="300" height="114" /></a> 
            [post_title] => Our Own Site
            [post_excerpt] => 
            [post_status] => publish
            [comment_status] => open
            [ping_status] => open
            [post_password] => 
            [post_name] => our-own-site
            [to_ping] => 
            [pinged] => 
            [post_modified] => 2010-06-22 00:40:22
            [post_modified_gmt] => 2010-06-22 00:40:22
            [post_content_filtered] => 
            [post_parent] => 0
            [guid] => http://localhost/wordpress/?p=54
            [menu_order] => 0
            [post_type] => post
            [post_mime_type] => 
            [comment_count] => 0
            [filter] => raw
        )
)

Das Folgende gibt jedoch nichts zurück.

<?php
    echo wp_get_attachment_image(54, array('300', '300'));
?>

Was mache ich hier falsch?

  • Sie müssen ihm eine ID von an geben Anhang Was du falsch gemacht hast war das $args Parameter – es gibt kein type param, richtig ist 'post_type' => 'attachment' 🙂 weil es standardmäßig auf Post (post_type ist post), Sie haben ihm eine ID von “post” gegeben, nicht “attachment” 🙂

    – jave.web

    18. Juni 2020 um 23:00 Uhr

Benutzer-Avatar
Rinogo

Eigentlich glaube ich nicht, dass die akzeptierte Antwort die Frage wirklich beantwortet.

Ihr Problem ist, dass Sie in der vorbei sind Post-ID (54 in deinem Beispiel; typisch $post->ID im WP-Sprachgebrauch) zu wp_get_attachment_image(). Wie in der zu sehen ist KodexSie sollen die verwenden Anhang-ID (sehen $attachment_id unter):

wp_get_attachment_image( $attachment_id, $size, $icon );

Mit anderen Worten, Sie müssen so etwas tun:

$image_attr = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), 'medium');

Die Funktion wp_get_attachment_image kann vier Werte annehmen, wie Sie sehen können:

wp_get_attachment_image ( int $attachment_id, string|array $size="thumbnail", bool $icon = false, string|array $attr="" )

Also ich benutze immer:

<?php echo wp_get_attachment_image( get_the_ID(), array('700', '600'), "", array( "class" => "img-responsive" ) );  ?>

Hinweis: Wir können einfach verwenden get_the_ID() um die ID des aktiven Beitrags zu übergeben. und hier 700 ist Breite und 600 ist Höhe des Anhangsbildes. Wir können unsere Klasse auch als bestehen array( “class” => “img-responsive” )

Die Funktion wp_get_attachment_image erhält nur ein Bild, das in WordPress hochgeladen wurde, es wird kein Bild im Inhalt des Beitrags ausgegeben.

Sie müssen den Inhalt des Beitrags für Ihr Beispielbild ausgeben.

Wie: echo $attachments['post_content'];

  • WordPress hat also keine interne Funktion, um ein hochgeladenes Bild in einer bestimmten Größe zu erhalten?

    – Ständiges Meiring

    22. Juni 2010 um 1:36 Uhr

  • Nein, die Funktion, die Sie angegeben haben, ist die richtige, aber Sie müssen ihr die Idee des Anhangs selbst übergeben, keinen Beitrag.

    – Aaron Butacov

    22. Juni 2010 um 1:38 Uhr

  • Ah okay danke. Aber es sollte immer noch das Bild mit einer Größe zurückgeben, die der angegebenen Größe am nächsten kommt, oder?

    – Ständiges Meiring

    22. Juni 2010 um 1:42 Uhr

  • Ja, beim Laden von Anhängen wird dies der Fall sein.

    – Aaron Butacov

    22. Juni 2010 um 1:54 Uhr

  • Das Obige ist ein Anhang, der jedoch nicht geladen wird. Könnte dies ein Fehler sein?

    – Ständiges Meiring

    22. Juni 2010 um 9:14 Uhr

1383710cookie-checkKorrekte Verwendung von wp_get_attachment_image() in WordPress

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy