Resim URL'sini yalnızca the_post_thumbnail'da nasıl edinebilirim?


33

Resmin URL'sini nasıl elde edeceğimi bilmek istiyorum the_post_thumbnail()

Varsayılan 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" />

Burada sadece src'yi yakalamak istiyorum. the_post_thumbnail()Yalnızca almak için nasıl filtre uygularım?http://domain.com/wp-content/uploads/2011/02/book06.jpg

Bilmeme izin ver


Yanıtlar:


41

Ayrıca deneyebilirsiniz:

Yalnızca bir boyut küçük resminiz varsa:

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

Veya ... eğer birden fazla bedeniniz varsa:

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

Wp_get_attachment_image_src () bir dizi döndürür: url, width, height, is_intermediate.

Yani sadece resim URL'sini istiyorsanız:

echo $thumbnail[0];

Kaynaklar:


Küçük bir ipucu: wp_get_attachment_image_src () işlevini boyutuyla kullanıyorsanız ve küçük resim boyutunu tam olarak almak istiyorsanız: tanımında verilen küçük resim adını kullanın (işlev add_image_size ()). Boyutları olan bir dizi kullanırsanız WP, uygun genişlik veya yüksekliğe sahip ilk görüntü boyutunu kullanır. Yani yanlış görüntü alabilirsiniz. Örnek: tanımlanmış 2 görüntünüz varsa, 156x98 yerine 120x98'e sahip olabilirsiniz: 156x98 ve 120x98 (yükseklik aynıdır). Ben bir kez onun için düştü;)
Marek Tuchalski

2

Bu hile yapar:

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

Aramakta olduğunuz küçük resim için doğru adı kullandığınızdan emin olun.


Bunun 2012'den bu yana değişip değişmediğini bilmiyorum, ancak 2017'de ilk parametrenin wp_get_attachment_image_srcboyut değil, ek kimlik numarası olması gerekir.
squarecandy


0

Tamam kullanarak anladım simplexml_load_string

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

Başka bir yöntem bekliyoruz.


0

Lütfen aşağıdaki kodu kullanın

<?php get_the_post_thumbnail_url(); ?>

Hedefinize ulaşmak için yeterli değilse, aşağıdaki kodu deneyin.

<?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 ); ?>

0

Hızlı ve kirli bir çözüm için bunu temanızın functions.php dosyasına tıklayın.

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);
}

Döngü içinde kullanılır, bu size aradığınızı verir

Bu, http://foo.com/wp-content/uploads/2019/02/toy-story-two-was-ok.jpg gibi bir şey döndürecek

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

* "Döngünün içinde" = while gibi bir şey arayın (have_posts ()): the_post ();

** Ayrıca , önceden tanımlanmış bu görüntü boyutlarından herhangi biriyle " post-large " ifadesini yazabilirsiniz: post-thumbnail, post-medium, post-full

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.