it-swarm.com.de

Holen Sie sich wp_get_attachment_url außerhalb der Schleife

Ich muss das vorgestellte Bild außerhalb der Schleife bekommen. Auf diese Weise kann ich für jede Seite ein anderes Vollbild-Hintergrundbild festlegen, das vom angezeigten Bild vorgegeben wird.

Nach einigen Recherchen konnte ich die Post-ID außerhalb der Schleife abrufen.

Das habe ich:

$page_object = get_queried_object();
$page_id     = get_queried_object_id();
$bkgdImg = wp_get_attachment_url( $page_id );
if (!empty($bkgdImg)) {
    $backgroundImg = $bkgdImg;
}
else {
    $defaultbackground = . get_template_directory_uri() . "/images/default-background.jpg";
    $backgroundImg = $defaultBackground;
}

echo $backgroundImg;

Vielen Dank!

1
Alexnl

wenn das gesuchte Ergebnis ein Ausdruck der URL ist, wie in Ihrem Beispiel, sollte dies funktionieren:

$page_id = get_queried_object_id();
if ( has_post_thumbnail( $page_id ) ) :
    $image_array = wp_get_attachment_image_src( get_post_thumbnail_id( $page_id ), 'optional-size' );
    $image = $image_array[0];
else :
    $image = get_template_directory_uri() . '/images/default-background.jpg';
endif;
echo $image;
6
windyjonas

Sie haben ein paar Syntaxfehler, aber in Ihrer Frage stellen Sie fest, dass ...

Auf diese Weise kann ich für jede Seite ein anderes Vollbild-Hintergrundbild festlegen, das vom angezeigten Bild vorgegeben wird.

wp_get_attachment_url verwendet die tatsächliche Anhangs-ID, nicht die Seiten-ID, an die das vorgestellte Bild angehängt ist. Ich gehe daher davon aus, dass die Frage lautet: "Warum erhalte ich nicht die erwartete Bild-URL?"

Was Sie brauchen, ist, get_post_thumbnail_id zu verwenden und das an wp_get_attacment_url weiterzuleiten ...

$bkgdImg = wp_get_attachment_url(get_post_thumbnail_id( $page_id ));

... möglicherweise mit einem zweiten Argument zur Angabe der Größe .

Ich hoffe ich habe richtig geraten :)

1
s_ha_dum

Das hat funktioniert und mir die Bild-URL gegeben:

$page_id = get_queried_object_id();
$post_thumbnail_id = get_post_thumbnail_id( $page_id );
$bkgdImg = wp_get_attachment_url( $post_thumbnail_id );
echo $bkgdImg;

Vielen Dank für all Ihre Hilfe, sie hat mich in die richtige Richtung gebracht.

1
Alexnl

Theme-Unterstützung für Thumbnail hinzufügen add_theme_support('post-thumbnails');

Dann schreiben Sie den folgenden Code auf Ihre Archivseite. Es funktioniert vor Ihrer WordPress-Schleife

$thumb_id = get_post_thumbnail_id();
$thumb_url_array = wp_get_attachment_image_src($thumb_id, 'thumbnail-size', true);
$thumb_url = $thumb_url_array[0];
echo $thumb_url;
1
Nurealam Sabbir