WordPress hooks คืออะไร? การดำเนินการและตัวกรองช่วยขยายฟังก์ชันการทำงานอย่างไร

เผยแพร่แล้ว: 2018-06-13
WordPress Hooks | LearnWoo

ปรับปรุงล่าสุด - 9 ตุลาคม 2020

หากคุณเคยทำงานบน WordPress คุณต้องเคยเจอคำว่า ' Hook ' หลายครั้ง หากคุณเป็นนักพัฒนา WordPress ที่ต้องการสร้างปลั๊กอินและธีม ตะขอของ WordPress มีความสำคัญต่อการพัฒนาของคุณ

แต่จริงๆ แล้ว Hooks คืออะไร?

ตาม codex ของ WordPress.org “ WordPress ให้บริการ Hooks เพื่อให้ปลั๊กอินของคุณสามารถ 'เชื่อมต่อ' กับ WordPress ส่วนที่เหลือได้ กล่าวคือเพื่อเรียกใช้ฟังก์ชันในปลั๊กอินของคุณในเวลาที่กำหนด และด้วยเหตุนี้จึงทำให้ปลั๊กอินของคุณเคลื่อนไหวได้”

ตะขอในแง่ทั่วไปเชื่อมต่อสิ่งหนึ่งกับอีกสิ่งหนึ่ง ในคำศัพท์เฉพาะของ WordPress จะเชื่อมโยง (เชื่อมต่อ) โค้ดที่ผู้ใช้กำหนดเองกับโค้ดที่มีอยู่ของ WordPress core

เรามาพูดกันตรงๆ กันดีกว่า

WordPress สร้างขึ้นด้วยฟังก์ชันเริ่มต้นบางอย่าง มีพฤติกรรมเริ่มต้นและค่าที่เกี่ยวข้องกับมัน ด้วย hooks คุณสามารถปรับเปลี่ยนการทำงานเริ่มต้นเหล่านี้และแทนที่ค่าที่มีอยู่ได้ ดังนั้น การปรับแต่งสภาพแวดล้อม WordPress ตามความต้องการของคุณ

ประเภทของตะขอ

ตะขอมีสองประเภท:

  1. Action Hooks – ใช้เพื่อดำเนินการในบางจุดของการดำเนินการ เปลี่ยนขั้นตอนการดำเนินการเริ่มต้น นี่คือรายการของ WordPress Action hooks
  2. Filter Hooks – ต่างจาก Action hooks เล็กน้อย Filter hooks ใช้เพื่อแก้ไขข้อมูลเริ่มต้นของ WordPress และแทนที่ด้วยค่าที่กำหนดเอง ก่อนที่มันจะแสดงให้ผู้ใช้เห็นในส่วนหน้าหรือเก็บไว้ในฐานข้อมูล รายการตัวกรองเบ็ดสามารถพบได้ใน WordPress Codex

โดยทั่วไป hooks เป็นฟังก์ชันที่กำหนดไว้ล่วงหน้าในตัวเอง ดังนั้น ฟังก์ชันสองประเภทที่เกี่ยวข้องกับ hooks คือ:

  1. ฟังก์ชันการดำเนินการ – ฟังก์ชัน เหล่านี้มีประโยชน์ในเหตุการณ์เมื่อมีการโพสต์บล็อก การโหลดหน้า และอื่นๆ
    ต่อไปนี้เป็นฟังก์ชันการดำเนินการบางส่วน:

    • add_action()
    • did_action()
    • ทำ_action()
    • do_action()
    • do_action_ref_array()
    • has_action()
    • remove_action()
    • remove_all_actions()
  2. ฟังก์ชันตัวกรอง – ทุกฟังก์ชันตัวกรองจะคืนค่าบางส่วนและแทนที่ด้วยข้อมูลเริ่มต้นของ WordPress
    ฟังก์ชันตัวกรองมีดังต่อไปนี้:

    • add_filter()
    • Apply_filters()
    • Apply_filters_ref_array()
    • current_filter()
    • การทำ_filter()
    • has_filter()
    • remove_all_filters()
    • remove_filter()

อินโฟกราฟิก

สังเกตอินโฟกราฟิกต่อไปนี้เพื่อความเข้าใจที่ดีขึ้นเกี่ยวกับวิธีการทำงานของ hooks

WordPress Hooks | Info-graphic on how WordPress Hooks work
อินโฟกราฟิกเกี่ยวกับวิธีการทำงานของ WordPress Hooks

ดังที่แสดงในอินโฟกราฟิกด้านบน ฟังก์ชัน Action และ Filter ใช้ hooks ตามลำดับเพื่อแก้ไขโค้ดหลักของ WordPress

ตะขอมีลักษณะอย่างไร?

Action hook ทั่วไปมีรูปแบบดังต่อไปนี้:

 add_action ( 'hook', 'your_custom_function_name', [ลำดับความสำคัญ], [accepted_parameters] );
ฟังก์ชัน your_custom_function_name()
{
   // รหัสที่กำหนดเองของคุณ
}

โดยที่ hook คือชื่อของ hook your_custom_function_name คือชื่อของฟังก์ชันที่มีโค้ดที่กำหนดเองของคุณ พารามิเตอร์ ลำดับความสำคัญ ทางเลือก ซึ่งระบุว่าควรดำเนินการ hook อย่างไร พารามิเตอร์ที่ ยอมรับ ซึ่งระบุพารามิเตอร์เพิ่มเติม และโค้ดที่กำหนดเอง ดิ การเรียกใช้ฟังก์ชัน ( add_action()) สามารถอยู่ด้านล่างหรือเหนือข้อมูลโค้ด

เบ็ดกรองมีรูปแบบดังต่อไปนี้:

 add_filter( 'ตัวกรอง', 'your_custom_function_name', 'ลำดับความสำคัญ', 'accepted_args' );
ฟังก์ชัน your_custom_function_name(ตัวแปร $)
{
   // รหัสที่กำหนดเองของคุณ
   กลับ;
}

โดยที่ add_filter() คือหนึ่ง ของฟังก์ชัน Filter hook, filter คือชื่อของตัวกรองที่คุณจะใช้, your_custom_function_name คือชื่อของฟังก์ชันที่ผู้ใช้กำหนดเอง, พารามิเตอร์ ลำดับความสำคัญ ระบุลำดับการดำเนินการของ hook, accept_args ระบุอาร์กิวเมนต์ที่จะถูกส่งต่อ และกำหนดเอง รหัสที่มีค่าส่งคืนที่จำเป็น

เช่นเดียวกับ WordPress มีตะขอสำหรับ WooCommerce เช่นกัน hooks เหล่านี้ถูกใช้อย่างกว้างขวางในการพัฒนาปลั๊กอิน ธีม และปรับแต่งกระบวนการชำระเงินของ WooCommerce
อ่าน WooCommerce Hooks: การดำเนินการและตัวกรองในเอกสารประกอบของ WooCommerce เพื่อทำความเข้าใจ WooCommerce hooks โดยละเอียด

สาธิต

มาทำความเข้าใจ hooks โดยใช้ข้อมูลโค้ดตัวอย่าง

Action Hook และฟังก์ชั่น

 //เพิ่ม Action hook
ฟังก์ชั่น my_action_hook() {
echo "<p align='center'>นี่คือตัวอย่างของ Action Hook</p>";
}
add_action( 'get_header', 'my_action_hook' );

ในข้อมูลโค้ดด้านบน 'my_action_hook' เป็นชื่อของฟังก์ชันที่กำหนดเอง 'add_action' เป็นหนึ่งในฟังก์ชัน Action และ 'get_header' ใช้เพื่อปรับแต่งส่วนหัวของเทมเพลต ในข้อมูลโค้ดที่ระบุ เรากำลังแสดงข้อความ 'This is an Action Hook Demo' ในส่วนหัวของเว็บไซต์

ภาพหน้าจอตัวอย่างที่แสดงการเปลี่ยนแปลงข้อมูลโค้ดที่ใช้แสดงอยู่ด้านล่าง

WordPress Hooks | Action hook example
ตัวอย่างตะขอแอคชั่น

ตะขอกรองและฟังก์ชัน

 //เพิ่มตะขอกรอง
add_filter('woocommerce_get_price_html','my_filter_hook');
ฟังก์ชั่น my_filter_hook ($ราคา){
ส่งคืน 'เพียง '.$ ราคา;
}

ในข้อมูลโค้ดด้านบน 'woocommerce_get_price_html' เป็น WooCommerce hook เพื่อรับราคาผลิตภัณฑ์ 'my_filter_hook' คือชื่อของตัวกรองที่ผู้ใช้กำหนด และ '$price' เป็นตัวแปรที่ผู้ใช้กำหนด ข้อมูลโค้ดเพียงเพิ่มคำนำหน้า "เพียง" ให้กับราคาผลิตภัณฑ์

ภาพหน้าจอต่อไปนี้แสดงให้เห็นว่าข้อมูลโค้ดส่งผลต่อร้านค้า WooCommerce ของเราอย่างไร

WordPress Hooks | Filter hook example
ตัวอย่างเบ็ดกรอง

นี่เป็นเพียงตัวอย่างง่ายๆ มีหลายสิ่งที่คุณสามารถทำได้ด้วย Hooks

การดำเนินการและตัวกรองช่วยขยายฟังก์ชันการทำงานอย่างไร

  1. ข้อได้เปรียบหลักของการใช้ Hooks คือช่วยในการปรับแต่งโค้ด WordPress หลัก
  2. การเปลี่ยนแปลงใด ๆ ในการพัฒนาสามารถตรวจสอบได้อย่างรอบคอบ เนื่องจากการปรับเปลี่ยนมีเพียงเล็กน้อย มากกว่าที่จะเกิดขึ้นในโค้ดหลายครั้ง
  3. การพัฒนาปลั๊กอินใหม่ทำได้ง่ายขึ้นมากด้วยวิธีการลองและทดสอบ
  4. สำหรับการพัฒนาธีม คุณสามารถสร้างธีมย่อยและเล่นกับ hooks ได้โดยไม่กระทบกับธีมหลัก
  5. ข้อเสนอ WordPress ที่เรียบง่าย ใช้งานง่าย มีโครงสร้างที่เข้าใจได้และเอกสารประกอบโดยละเอียดสำหรับการอ้างอิง
  6. รองรับ WooCommerce ปลั๊กอิน WordPress อีคอมเมิร์ซยอดนิยม ปลั๊กอินการกำหนดราคา WooCommerce เปลี่ยนแปลงราคาผลิตภัณฑ์ การคำนวณราคา และเสนอราคาและส่วนลดแบบไดนามิกโดยใช้ WooCommerce hooks สามารถแตะรายละเอียดคำสั่งซื้อ ข้อมูลผลิตภัณฑ์ รายละเอียดการจัดส่งได้โดยใช้ขอเกี่ยวแบบกำหนดเอง

สรุปความคิดเห็น

WordPress Hooks เป็นกลไกสำคัญสำหรับการพัฒนาปลั๊กอินและธีม มีการใช้กันอย่างแพร่หลายในการแก้ไขโค้ด WordPress ที่มีอยู่เพื่อปรับแต่งเว็บไซต์ แม้ว่า hooks จะมีข้อดีหลายประการ เราควรตรวจสอบให้แน่ใจว่า hook แบบกำหนดเองแต่ละรายการนั้นไม่ซ้ำกัน และไม่ทับซ้อนกับ hook อื่นที่มีชื่อเดียวกัน แม้แต่ในกรณีดังกล่าว คุณสามารถกำหนดลำดับความสำคัญให้กับ hooks เพื่อดำเนินการได้ตามความต้องการของคุณ

ดู บทความการปรับแต่ง WooCommerce ของเราสำหรับเคล็ดลับในการปรับแต่งร้านค้า WooCommerce ของคุณ

หรือ สำรวจ LearnWoo ต่อไป สำหรับบทความที่น่าทึ่งเพิ่มเติม