set_post_thumbnail_size กับ add_image_size


11

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

ขอบคุณ

คำตอบ:


27

เมื่อรูปภาพถูกอัพโหลดใน WordPress รูปภาพนั้นจะถูกบันทึกในขนาดดั้งเดิมและยังเป็นสำเนาที่ปรับขนาดแล้วในขนาดที่แตกต่างกัน ด้วยวิธีนี้มันจะกลายเป็นเรื่องง่ายที่จะใช้ขนาดที่แตกต่างกันของภาพเดียวกันเพื่อวัตถุประสงค์ที่แตกต่างกัน

ตามค่าเริ่มต้น WordPress จะสร้างสำเนา 3 ชุดใน 3 ขนาดที่แตกต่างกัน:

  • 'thumb'
  • 'medium'
  • 'large'

ขนาดพิกเซลสำหรับทั้ง 3 ขนาดสามารถตั้งค่าในแดชบอร์ด WordPress Settings -> Mediaภายใต้เมนู

ตอนนี้ฟังก์ชั่นadd_image_sizeจะใช้ในการลงทะเบียนขนาดใหม่ที่เพิ่มไปยัง 3 ค่าเริ่มต้น

ทุกขนาดที่ลงทะเบียนสามารถเรียกดูได้โดยใช้ชื่อของมันในการทำงานบางอย่าง WordPress เช่นwp_get_attachment_image_src, ,wp_get_attachment_imagewp_get_attachment_link

ฟังก์ชั่นทั้งหมดเหล่านี้ยอมรับพารามิเตอร์$sizeที่ควรเป็นชื่อของหนึ่งในขนาดที่ลงทะเบียน (หนึ่งใน 3 มาตรฐานหรือหนึ่งในขนาดที่กำหนดเองที่ลงทะเบียนด้วยadd_image_size)

หาก'full'ใช้เป็น$sizeอาร์กิวเมนต์รูปภาพดั้งเดิมจะถูกส่งคืนซึ่งจะไม่ถูกปรับขนาด

นอกเหนือไปจากฟังก์ชั่นดังกล่าวข้างต้นมีสองฟังก์ชั่นอื่น ๆ ที่ทำให้การใช้งานที่มีขนาดภาพ: และget_the_post_thumbnailthe_post_thumbnail

ฟังก์ชั่นทั้งสองนี้ได้รับ (ภาพแรก) และเสียงสะท้อน (ที่สอง) ภาพที่ตั้งเป็น "ภาพเด่น" สำหรับโพสต์

สิ่งที่ส่งคืน (หรือสะท้อน) โดยฟังก์ชั่นเหล่านี้คือimgแท็ก html เต็มรูปแบบเช่น

<img scr="http://www.example.com/wp-content/2013/08/image-200x200.jpg" />

ดังนั้นขนาดที่ใช้คืออะไร?

หาก a $sizeถูกส่งเป็นอาร์กิวเมนต์ที่ 2 (ที่ 1 คือ$postid) ฟังก์ชั่นเหล่านี้จะคืนค่ารูปภาพในขนาดนั้น post-thumbnailมิฉะนั้นฟังก์ชันเหล่านี้ค้นหาขนาดภาพลงทะเบียนที่มีชื่อ:

นี่ไม่ใช่ขนาดเริ่มต้นหนึ่งในสามที่จริงแล้วมันเป็นขนาดมาตรฐานที่ 4 (ถือว่าเป็นขนาดที่ 5 full) และคุณสามารถลงทะเบียนการโทรset_post_thumbnail_sizeได้

ดังนั้น

set_post_thumbnail_size( $width, $height, $crop );

เป็นทางลัดสำหรับ

add_image_size( 'post-thumbnail', $width, $height, $crop );

หากคุณไม่ได้เรียกset_post_thumbnail_size(ซึ่งหมายความ'post-thumbnail'ว่าไม่ได้สร้างขนาด) WordPress จะใช้ขนาดthumbและแม้ว่าขนาดนี้จะไม่สามารถใช้งานได้ WordPress จะใช้ภาพต้นฉบับซึ่งเป็นขนาดที่ไม่ได้ปรับขนาด

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

หมายเหตุ:

โปรดระวังว่าเมื่อ WordPress สร้างสำเนาภาพที่ปรับขนาดแล้วจะไม่ขยาย แต่ทำสำเนาขนาดเล็กกว่าเท่านั้น: เช่นหากภาพต้นฉบับเป็น 400x500px และขนาดภาพ 'ปานกลาง' คือ 800x600px, ขนาดกลางและใหญ่กว่าจะไม่ถูกสร้างขึ้น

ดังนั้นการลงทะเบียนขนาดภาพจึงไม่ทำให้ความปลอดภัยของไฟล์ภาพสำหรับทุกขนาดที่ลงทะเบียนนั้นมีอยู่จริงในโฟลเดอร์เนื้อหาของ WordPress แม้ว่าขนาดภาพที่ลงทะเบียนจะเปลี่ยนแปลงได้อย่างง่ายดาย: การเปลี่ยนการตั้งค่าการเปลี่ยนธีม ฯลฯ

เมื่อขนาดภาพเปลี่ยนแปลงไม่ว่าด้วยเหตุผลใดการเปลี่ยนแปลงจะมีผลกับภาพที่อัปโหลดหลังจากการเปลี่ยนแปลงนั้น ภาพที่อัปโหลดก่อนที่จะไม่เปลี่ยนขนาดและไม่ได้ลดขนาดและบันทึกใหม่

หากจำเป็นต้องพึ่งพาขนาดภาพที่เฉพาะเจาะจงหลังจากอัพโหลดภาพบางภาพแล้ว (เช่นหลังจากเปลี่ยนธีม) จากนั้นปลั๊กอินสร้างภาพย่อใหม่จะเป็นเครื่องมือช่วยชีวิต


2
น่ากลัว ฉันจะคลิก 5 ครั้งเพราะคำตอบของคุณ แต่เว็บไซต์ไม่อนุญาต Thanls
Greeso

ยินดีต้อนรับคุณโอเคอีกต่อไป :)
gmazzap

Questoin อีกหนึ่งรายการ: ถ้าฉันไม่ได้เรียกว่า set_post_thumbnail_size (ซึ่งหมายความว่าขนาด 'post-thumbnail' ไม่ได้ถูกสร้างขึ้นฉันเรียก the_post_thumbnail ขนาดจะเกิดอะไรขึ้น (เพราะ the_post_thumbnail จะพยายามใช้รูปย่อขนาดเล็ก) param).
Greeso

@GM ยกนิ้วให้ชี้แจงชัดเจน
Istiaque Ahmed

คำตอบนี้มีประโยชน์มาก! อย่างไรก็ตามฉันคิดว่า: set_post_thumbnail_size( 150, 150 ); If you haven't called set_post_thumbnail_size (which means the size 'post-thumbnail' is not created), WordPress will use the size thumb, and if even this size is not available, WordPress will use the original image, the one not resized. ... ไม่ถูกต้อง จากประสบการณ์ของฉันทดสอบสิ่งนี้หากset_post_thumbnail_size()ไม่ได้รับการเรียก WP จะกลับไปที่ภาพขนาดเต็ม
Travis Northcutt

1

จาก Codex:

set_post_thumbnail_size

ตั้งค่าขนาดรูปภาพเริ่มต้น (ขนาดย่อโพสต์ภาพขนาดย่อ) หากต้องการลงทะเบียนขนาดภาพเพิ่มเติมสำหรับภาพที่แนะนำให้ใช้: add_image_size ()

add_image_size

ลงทะเบียนขนาดภาพใหม่ ซึ่งหมายความว่า WordPress จะสร้างสำเนาของภาพเด่น (ซึ่งรู้จักกันในชื่อภาพขนาดย่อของโพสต์) ด้วยขนาดที่ระบุเมื่อคุณอัปโหลดภาพใหม่


ฉันสามารถใช้ add_image_size โดยไม่ใช้ set_post_thumbnail_size ได้หรือไม่
Greeso

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