Wie erhalte ich eine Bild-URL nur auf dem_post_thumbnail?

33

Ich möchte wissen, wie ich die Bild-URL aktivieren kann the_post_thumbnail()

Standard the_post_thumbnail()

<img width="800" height="533" src="http://domain.com/wp-content/uploads/2011/02/book06.jpg" class="attachment-post-thumbnail wp-post-image" alt="book06" title="book06" />

Hier will ich nur den src schnappen. Wie filtere ich the_post_thumbnail()nur um zu bekommenhttp://domain.com/wp-content/uploads/2011/02/book06.jpg

Gib mir Bescheid

Haha
quelle

Antworten:

41

Sie könnten auch versuchen:

Wenn Sie nur eine Größenminiatur haben:

$thumbnail = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ) );

Oder ... wenn Sie mehrere Größen haben:

$thumbnail = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), "size" );

Beachten Sie, dass wp_get_attachment_image_src () ein Array zurückgibt: url, width, height, is_intermediate.

Also, wenn Sie nur die Bild-URL wollen:

echo $thumbnail[0];

Ressourcen:

Ross
quelle
Ein kleiner Hinweis: Wenn Sie die Funktion wp_get_attachment_image_src () mit der Größe verwenden und eine genaue Größe der Miniaturbilder erhalten möchten, verwenden Sie den in der Definition angegebenen Miniaturbildnamen (Funktion add_image_size ()). Wenn Sie ein Array mit Abmessungen verwenden, verwendet WP die erste Bildgröße mit der richtigen Breite oder Höhe. Sie könnten also ein falsches Bild bekommen. Beispiel: Anstelle von 156x98 haben Sie möglicherweise 120x98, wenn Sie 2 Bilder definiert haben: 156x98 & 120x98 (Höhe ist gleich). Ich bin einmal darauf
hereingefallen
2

Das macht den Trick:

<?php wp_get_attachment_image_src('subgall-thumb'); ?>

Stellen Sie sicher, dass Sie den richtigen Namen für die Miniaturansicht verwenden, die Sie aufrufen.

Anna
quelle
Ich weiß nicht, ob sich dies seit 2012 geändert hat, aber 2017 muss der erste Parameter wp_get_attachment_image_srcdie ID-Nummer des Anhangs sein, nicht die Größe.
SquareCandy
2

Seit WordPress 4.4 gibt es eine effiziente Kernfunktion, die dies sauberer handhaben kann als die Antworten hier.

Sie können angeben, the_post_thumbnail_url( $size )welche URL die Miniaturansicht des Beitrags drucken soll.

Wenn Sie die URL zurückgeben möchten, anstatt sie sofort auszugeben, können Sie sie auch verwenden $url = get_the_post_thumbnail_url( $size )

cameronjonesweb
quelle
0

Ok habe es mit simplexml_load_string

$dom = simplexml_load_string(get_the_post_thumbnail());
$src = $dom->attributes()->src;
    echo $src;

Andere Methoden sind willkommen.

Haha
quelle
0

Bitte verwenden Sie den folgenden Code

<?php get_the_post_thumbnail_url(); ?>

Wenn es nicht ausreicht, um Ihr Ziel zu erreichen, versuchen Sie es unter Code

<?php $postimages = wp_get_attachment_image_src( get_post_thumbnail_id( get_the_ID() ), 'large' );

// Check for images if ( $postimages ) {

    // Get featured image   $postimage = $postimages[0];

} else {} while (have_posts() && $i < 8) : the_post(); echo esc_url( $postimage ); ?>
Jit Gurav
quelle
0

Um eine schnelle und schmutzige Lösung zu finden, klopfen Sie diese in die Datei functions.php Ihres Themas

FUNCTION GET_STRING_BETWEEN($STRING, $START, $END){
    $STRING = " ".$STRING;
    $INI = STRPOS($STRING, $START);
    IF ($INI == 0) RETURN "";
    $INI += STRLEN($START);
    $LEN = STRPOS($STRING, $END, $INI) - $INI;
    RETURN SUBSTR($STRING, $INI, $LEN);
}

Wird es innerhalb der Schleife verwendet, erhalten Sie das, wonach Sie suchen

Dies gibt so etwas wie http://foo.com/wp-content/uploads/2019/02/toy-story-two-was-ok.jpg zurück

$THE_FEATURED_IMAGE = GET_STRING_BETWEEN(get_the_post_thumbnail(NULL,'post-large'), 'src="', '" class="');

* "Within the loop" = suche nach etwas wie while (have_posts ()): the_post ();

** Sie können auch " Post-Large " mit einer dieser vordefinierten Bildgrößen ausgeben: Post-Thumbnail, Post-Medium, Post-Full

Taylor Hunt
quelle