คุณจะได้รับขนาดภาพย่อของโพสต์ได้อย่างไร


13

ฉันรู้วิธีการกำหนดขนาดของภาพขนาดย่อโพสต์โดยใช้การตั้งค่า WP Admin Mediaหรือใช้ฟังก์ชั่นนี้ :

set_post_thumbnail_size( 150, 150 )

แต่เราจะได้รับความกว้าง และ ความสูงของภาพที่ตั้งไว้สำหรับขนาดภาพย่อได้อย่างไร?

ฉันต้องการทำสิ่งนี้:

get_post_thumbnail_size(); // return array(150, 150)

สิ่งนี้จะเกิดขึ้นได้อย่างไร? มันใช้งานget_option()หรือไม่และปุ่มตัวเลือกจะเป็นความกว้างและความสูงของภาพขนาดย่อหรือไม่

คำตอบ:


8

เมื่อเพิ่มขนาดรูปภาพด้วย WordPress ( add_image_size) หรือด้วยปลั๊กอินหรือรหัสที่กำหนดเองของคุณมันจะถูกเพิ่มเข้าไปใน$_wp_additional_image_sizesโลกฉันไม่สามารถหาฟังก์ชั่นที่คล้ายกันในการดึงข้อมูลจากทั่วโลกนั้นได้ ส่วนกลางเพื่อกำหนดความกว้างและความสูงของขนาดภาพที่ลงทะเบียน

ตัวอย่าง:

global $_wp_additional_image_sizes;
// Output width
echo $_wp_additional_image_sizes['post_thumbnail']['width'];
// Output height
echo $_wp_additional_image_sizes['post_thumbnail']['height'];

แน่นอนว่าต้องอ้างอิงค่าเหล่านั้น ณ จุดหลังจากที่คุณตั้งค่าขนาด ดังนั้นหากตัวอย่างเช่นคุณกำลังตั้งค่าขนาดรูปขนาดย่อในช่วง init คุณจะต้องตรวจสอบให้แน่ใจว่าได้ทำสิ่งที่คุณต้องการหลังจากจุดนั้น (ไม่เช่นนั้นคุณจะกลับมามีขนาดตามเดิมก่อนกำหนด)

หวังว่าจะช่วย


ดูเหมือนว่าจะเป็นpost-thumbnailมากกว่าpost_thubmnail(WP3.6)
user2019515

15

อย่างไรก็ตามมีวิธีอื่น:

get_option( 'thumbnail_size_w' );
get_option( 'thumbnail_size_h' );

หมายเหตุ: เป็นหนึ่งในขนาดชุดภายในthumbnail $_wp_additional_image_sizesดังนั้นการโทรเพื่อget_option()จะทำงานกับขนาดภาพอื่น ๆ ด้วย


4
นี่เป็นตัวเลือกที่ดีที่สุดเพราะปลั๊กอินสามารถเรียกใช้ hooks ได้
fuxia

1
นั่นเป็นสาเหตุที่ฉันประหลาดใจที่ยังไม่ได้กล่าวถึง
ทำเครื่องหมาย

2

นอกเหนือจากสาเหตุที่เป็นความเจ็บปวดในการเรียกตัวเลขเหล่านี้การเสริมสมรรถนะหลักที่มีการปะแก้เสร็จแล้ว น่าเศร้าที่มันยังไม่ได้อยู่ในแกน

เพียงแค่ติดตามความคืบหน้าของตั๋วนี้: Wordpress Trac: Enchance ที่get_intermediate_image_sizes()จะมีชื่อไม่เพียง แต่มีขนาดเช่นกัน


1

โปรดทราบว่านี่global $_wp_additional_image_sizes; อาจไม่ทำงานตามที่คาดไว้ ตัวอย่างเช่นเมื่อใช้อยู่ในปลั๊กอินมันจะไม่ส่งคืนขนาดเพิ่มเติมที่ธีมได้ลงทะเบียนไว้


มันจะถ้าคุณโทรในภายหลังเพียงพอในลำดับการกระทำคือ หากธีมลงทะเบียนขนาดของการดำเนินการ init การโทรของคุณจะต้องดำเนินการหลังจากที่การกระทำนั้นได้เกิดขึ้น
t31os

1

สิ่งเดียวที่ยังขาดอยู่คือ ID ของภาพย่อ:

$post_thumbnail_id = get_post_thumbnail_id( $post_id );
$attachment = wp_get_attachment_image_src( $post_thumbnail_id );
$width=$attachment[1];
$height=$attachment[2];

-1

สิ่งที่คุณต้องการคือฟังก์ชั่นนี้: wp_get_attachment_image_src

Codex: http://codex.wordpress.org/Function_Reference/wp_get_attachment_image_src

มันจะส่งคืนอาร์เรย์ที่มี URL ความกว้างและความสูงของไฟล์แนบ


1
ใช่ แต่คาดว่าจะมี ID สำหรับภาพที่กำหนดผู้ใช้ไม่มี ID ที่จะผ่านเขาต้องการค้นหาขนาดที่ลงทะเบียนด้วยชื่อเช่น ภาพขนาดย่อ (post_thumbnail)
t31os

-1

นอกจากโพสต์ด้านบน:

$attachment = wp_get_attachment_image_src( $attachment_id ); // where $attachment_id is the ID of the attachment you want to get the thumbnail from

จากนั้นใช้โค้ดถัดไปเพื่อแสดง URL ความกว้างและความสูง:

echo $attachment[0]; // url
echo $attachment[1]; // width
echo $attachment[2]; // height
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.