ฉันจะรับ URL ของภาพได้ที่ the_post_thumbnail เท่านั้น


33

ฉันต้องการทราบวิธีเปิด URL รูปภาพ the_post_thumbnail()

ค่าเริ่มต้น 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" />

ที่นี่ฉันต้องการคว้า src เท่านั้น ฉันจะกรองthe_post_thumbnail()เพื่อรับได้อย่างไรhttp://domain.com/wp-content/uploads/2011/02/book06.jpg

แจ้งให้เราทราบ


คำตอบ:


41

คุณอาจลอง:

หากคุณมีภาพย่อขนาดเดียวเท่านั้น:

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

หรือ ... หากคุณมีหลายขนาด:

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

โปรดทราบว่า wp_get_attachment_image_src () ส่งคืนอาร์เรย์: url, width, height, is_intermediate

ดังนั้นหากคุณต้องการเฉพาะ URL รูปภาพ:

echo $thumbnail[0];

แหล่งข้อมูล:


คำแนะนำเล็กน้อย: หากคุณใช้ wp_get_attachment_image_src () ฟังก์ชั่นที่มีขนาดและต้องการรับภาพขนาดย่อที่แน่นอน: ใช้ชื่อภาพขนาดย่อที่กำหนดในนิยาม (ฟังก์ชั่น add_image_size ()) หากคุณใช้อาร์เรย์ที่มีขนาด WP จะใช้ขนาดภาพแรกที่มีความกว้างหรือความสูงที่เหมาะสม ดังนั้นคุณอาจเข้าใจผิด ตัวอย่าง: แทนที่จะเป็น 156x98 คุณอาจมี 120x98 หากคุณกำหนดไว้ 2 ภาพ: 156x98 และ 120x98 (ความสูงเท่ากัน) ฉันตกหลุมมันครั้งเดียว;)
Marek Tuchalski

2

นี่เป็นการหลอกลวง:

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

ตรวจสอบให้แน่ใจว่าคุณใช้ชื่อที่ถูกต้องสำหรับภาพขนาดย่อที่คุณโทร


ฉันไม่ทราบว่าสิ่งนี้มีการเปลี่ยนแปลงตั้งแต่ปี 2012 หรือไม่ แต่ในปี 2560 พารามิเตอร์ตัวแรกของwp_get_attachment_image_srcต้องเป็นหมายเลขประจำตัวของเครื่องไม่ใช่ขนาด
squarecandy

2

ตั้งแต่ WordPress 4.4 มีฟังก์ชั่นหลักที่มีประสิทธิภาพที่สามารถจัดการสิ่งนี้ได้อย่างสะอาดกว่าคำตอบที่นี่

คุณสามารถใช้the_post_thumbnail_url( $size )ซึ่งจะพิมพ์ URL ของภาพขนาดย่อโพสต์

หรือถ้าคุณต้องการส่งคืน URL แทนที่จะส่งออกทันทีคุณสามารถใช้ $url = get_the_post_thumbnail_url( $size )



0

กรุณาใช้รหัสด้านล่าง

<?php get_the_post_thumbnail_url(); ?>

หากไม่เพียงพอที่จะบรรลุเป้าหมายของคุณให้ลองโค้ดด้านล่าง

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

สำหรับวิธีการแก้ปัญหาที่รวดเร็วและสกปรกให้ตบนี้ในไฟล์ functions.php ของธีมของคุณ

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

ใช้ในวงนี้จะให้สิ่งที่คุณกำลังมองหา

สิ่งนี้จะคืนค่าเช่นhttp://foo.com/wp-content/uploads/2019/02/toy-story-two-was-ok.jpg

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

* "Inside the loop" = ค้นหาสิ่งที่ต้องการในขณะที่ (have_posts ()): the_post ();

**นอกจากนี้คุณยังสามารถย่อย " โพสต์ขนาดใหญ่ " ด้วยขนาดรูปภาพที่กำหนดไว้ล่วงหน้าเหล่านี้: โพสต์รูปขนาดย่อ, โพสต์ขนาดกลาง, โพสต์แบบเต็ม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.