นี่คือบทสรุปเกี่ยวกับวิธีการที่ปลั๊กอินบล็อกสามารถใช้ WordPress hooks โดยเฉพาะคุณสมบัติ Block Hooks ใหม่ที่แนะนำใน WordPress 6.4:
1. หลักการบล็อกตะขอ:
- การวางตำแหน่งอัตโนมัติ: บล็อกสามารถวางตำแหน่งตัวเองได้โดยอัตโนมัติเมื่อมีการเพิ่มบล็อกอื่นเข้าไปในเนื้อหา ทำให้ไม่จำเป็นต้องแทรกด้วยตนเอง
- การมองเห็นและการควบคุม: บล็อกที่แทรกไว้จะมองเห็นได้ในตัวแก้ไข และผู้ใช้ยังคงควบคุมการแทรกอัตโนมัติได้ ทำให้ได้รับประสบการณ์การแก้ไขแบบกำหนดเอง
2. ข้อจำกัดและข้อควรพิจารณา:
- Block Hooks ใช้งานได้เฉพาะในเทมเพลตที่ยังไม่ได้แก้ไข ส่วนเทมเพลต และรูปแบบที่ธีมจัดเตรียมไว้ให้ สิ่งเหล่านี้จะไม่ทำงานในเนื้อหาที่โพสต์ เทมเพลต/ชิ้นส่วนที่แก้ไข หรือรูปแบบที่ผู้ใช้สร้างขึ้น
- ใน WordPress 6.4 การแทรกอัตโนมัติใช้งานไม่ได้กับบล็อกที่มีฟังก์ชันบันทึกแบบกำหนดเอง เนื่องจากอาจทำให้เกิดข้อผิดพลาดในการตรวจสอบความถูกต้องของบล็อกได้ นักพัฒนาควรใช้บล็อกไดนามิกเพื่อความเข้ากันได้
3. สองวิธีในการขอบล็อก:
ก. การใช้ `block.json`:
- มอบวิธีง่ายๆ ในการเชื่อมต่อบล็อกของบุคคลที่สาม แต่มีความยืดหยุ่นที่จำกัด
- คุณสมบัติ `blockHooks` ใน `block.json` ช่วยให้สามารถระบุตำแหน่งของบล็อก hooked (ก่อน, หลัง, ลูกคนแรก, ลูกสุดท้าย)
ข. การใช้ตัวกรอง `hooked_block_types`:
- ให้ความยืดหยุ่นมากกว่าเมื่อเปรียบเทียบกับ `block.json` ทำให้สามารถเชื่อมต่อแบบมีเงื่อนไขตามเทมเพลต ส่วนของเทมเพลต หรือรูปแบบ
- ฟังก์ชันเรียกกลับสำหรับ `hooked_block_types` รับพารามิเตอร์ เช่น บล็อก hooked ตำแหน่ง บล็อกพุก และบริบท
4. ข้อควรพิจารณาสำหรับนักพัฒนา:
- บล็อก Hooked จะปรากฏในตัวแก้ไขไซต์ ทำให้ผู้ใช้สามารถควบคุมตำแหน่งของตนได้ นักพัฒนาไม่สามารถบังคับตำแหน่งของบล็อกได้หากผู้ใช้ต้องการย้าย
- ไม่แนะนำให้เชื่อมต่อบล็อกแบบคงที่ (พร้อมฟังก์ชันบันทึกแบบกำหนดเอง) เนื่องจากอาจทำให้เกิดข้อผิดพลาดในการตรวจสอบความถูกต้องของบล็อกได้ บล็อกแบบไดนามิกเป็นตัวเลือกที่ต้องการสำหรับ Block Hooks
- นักพัฒนาควรตรวจสอบให้แน่ใจว่าบล็อก hooked ของพวกเขาเข้ากันได้กับ WordPress เวอร์ชันปัจจุบันและ Block Hooks API
โดยสรุป คุณลักษณะ Block Hooks ใหม่ใน WordPress 6.4 และสูงกว่านั้นมอบวิธีที่มีประสิทธิภาพสำหรับปลั๊กอินบล็อกในการแทรกบล็อกในตำแหน่งเฉพาะโดยอัตโนมัติ ในขณะที่ยังคงอนุญาตให้ผู้ใช้ควบคุมตำแหน่งของบล็อกเหล่านั้นภายในเครื่องมือแก้ไขไซต์
การอ้างอิง:[1] https://github.com/WordPress/gutenberg/issues/54904
[2] https://kinsta.com/blog/wordpress-hooks/
[3] https://essential-blocks.com/block-hooks-everything-you-need-to-know/
[4] https://www.youtube.com/watch?v=ezPHiyhhaoQ
[5] https://developer.wordpress.org/block-editor/reference-guides/packages/packages-hooks/
-