WordPress Hooks: The Essential Guide
เผยแพร่แล้ว: 2021-01-26WordPress hooks เป็นเครื่องมือที่มีประโยชน์ซึ่งออกแบบมาสำหรับนักพัฒนาที่สร้างปลั๊กอินและธีมของ WordPress อันที่จริง มันมีประโยชน์มากที่ผู้สร้าง WordPress ใช้งานพวกมันตลอดทั้งคอร์ของ WordPress แต่ WordPress hooks คืออะไรและคุณใช้งานอย่างไร?
ในคู่มือนี้ เราจะมาดูวิธีการใช้ WordPress hooks อย่างมีประสิทธิภาพและเจาะลึกข้อมูลพื้นฐาน มาดำน้ำกันเถอะ!
Hooks ใน WordPress คืออะไร?
สรุปสั้นๆ ว่า WordPress hooks เป็นส่วนย่อยของโค้ด WordPress ที่ดึงและรันโค้ดส่วนอื่นๆ ของโค้ด WordPress โดยพื้นฐานแล้วพวกเขาอนุญาตให้นักพัฒนาข้ามไปมาระหว่างไฟล์ต่าง ๆ ได้อย่างง่ายดายในธีมและปลั๊กอินWordPress hooks มาพร้อมกับ WordPress core ทุกธีมและปลั๊กอินใช้งานได้เช่นกัน
WordPress Hooks อธิบาย
จุดประสงค์หลักของ hooks ใน WordPress คือการอนุญาตให้นักพัฒนาเปลี่ยนวิธีการทำงานของระบบจัดการเนื้อหาโดยพื้นฐานโดยไม่ต้องแก้ไขไฟล์หลักของ WordPress เนื่องจาก WordPress เป็นโอเพ่นซอร์ส คุณ สามารถ ยุ่งกับไฟล์หลักได้ แต่มีโอกาส 99% ที่คุณจะเสียใจภายในไม่กี่นาที
แม้ว่านักพัฒนามือใหม่อาจเข้าใจได้ยากสักหน่อย แต่สิ่งสำคัญอย่างยิ่งคือต้องเรียนรู้วิธีการทำงานของ WordPress hook บ่อยครั้ง ความสับสนเกิดขึ้นเนื่องจากคำศัพท์ที่ WordPress ใช้ แม้ว่าการกระทำเบื้องหลังจะค่อนข้างคล้ายกับภาษาโปรแกรมหลายภาษา แต่การใช้คำฟุ่มเฟือยนั้นแตกต่างกัน การเรียนรู้วิธีสร้างและใช้สิ่งเหล่านี้มักจะง่ายที่สุดโดยทำตามตัวอย่าง อ่านเกี่ยวกับสิ่งเหล่านี้ก่อน จากนั้นจึงฝึกฝน
ในการเขียน WordPress hooks คุณจะต้องสามารถเขียนโค้ดใน PHP ได้ PHP เป็นภาษาพื้นฐานสำหรับ WordPress ส่วนใหญ่ คุณสามารถคิดว่า hooks เป็นช่องเปิดที่ฟังก์ชัน PHP อื่น ๆ สามารถยึดได้ คุณยังสามารถคิดว่า WordPress hooks เป็นการโทรกลับที่ทำบางสิ่งกับข้อมูลหรือการแสดงผลก่อนที่ผู้ใช้จะเห็นข้อมูล

WordPress Hooks สองประเภท
WordPress hooks มีสองประเภทหลักที่คุณจะต้องเรียนรู้:
- ตะขอแอคชั่น WordPress
- ตะขอตัวกรอง WordPress
มาดูที่เกี่ยวของ WordPress สองประเภทนี้และแตกต่างกันอย่างไร นอกจากนี้ เราจะสำรวจตัวอย่างบางส่วนของทั้ง action hook และ filter hooks เพื่อแสดงการใช้งานได้ดียิ่งขึ้น
ความแตกต่างระหว่าง WordPress Action Hooks และ Filter Hooks
หากคุณได้ใช้เวลาทบทวน codex ของ WordPress คุณอาจเห็นคำเหล่านี้ถูกมองข้ามไปโดยไม่ได้ตั้งใจ น่าเสียดาย จุดอ่อนประการหนึ่งของ codex ก็คือมันถูกเขียนขึ้นโดยนักพัฒนาเอง ผลข้างเคียง ความแตกต่างที่สำคัญบางอย่างที่อาจชัดเจนสำหรับพวกเขานั้นไม่ชัดเจนสำหรับผู้ที่ไม่คุ้นเคยกับโค้ดหลักของ WordPress
วิธีที่ง่ายที่สุดในการแยกความแตกต่างระหว่าง WordPress hooks สองประเภทคือ action hooks จะไม่คืนค่า ในขณะที่ filter hooks จะส่งกลับค่าสำหรับผู้ที่คุ้นเคยกับภาษาโปรแกรมทั่วไป ก็เหมือนบอกว่า action hooks มีประเภท return เป็นโมฆะ ในขณะที่ filter hook จะส่งคืนข้อมูลจริง
ตะขอกรองสามารถคิดได้ว่าเป็นตะขอหรือเหตุการณ์ก่อนการประมวลผล ตะขอตัวกรองอาจกรองผลลัพธ์ที่ส่งคืนจากการสืบค้นฐานข้อมูลเพื่อให้มีเฉพาะรายการที่มีนามสกุล "Smith" ควรเรียกตัวกรองนี้ ก่อนที่จะ เรียกการสืบค้นฐานข้อมูลจริง โดยแจ้ง WordPress ล่วงหน้าว่าจะต้องนำผลลัพธ์ที่ไม่เกี่ยวข้องออกก่อนที่จะส่งคืน
WordPress ction hooks ถือได้ว่าเป็นการดึงข้อมูลบางอย่างผ่านโค้ด ตัวอย่างทั่วไปของ action hook คือการแทรกไฟล์ CSS เพิ่มเติมไปยังหน้าไซต์เพื่อทำให้ปรากฏแตกต่างออกไป โปรดจำไว้ว่า hooks เปลี่ยนวิธีการแสดงข้อมูลก่อนที่จะส่งถึงผู้ใช้ด้วยซ้ำ เบ็ดการดำเนินการส่งไฟล์ CSS ใหม่ที่ทำให้ประสบการณ์ผู้ใช้ดีขึ้น กระบวนการนี้ไม่เกี่ยวข้องกับการแก้ไขแกนกลางของ WordPress และไม่จำเป็นต้องแก้ไขแกนหลักของเว็บของเว็บไซต์ ด้วยวิธีนี้ WordPress hooks สามารถช่วยให้จัดการไซต์ WordPress หลายไซต์ได้ง่ายขึ้นมากเมื่อใช้ร่วมกับปลั๊กอิน
ตะขอและตัวกรองอธิบาย
ตอนนี้เราได้ดูภาพรวมที่เป็นนามธรรมมากขึ้นของ hooks และตัวกรองของ WordPress แล้ว เรามาเจาะลึกในรายละเอียดทางเทคนิคเพิ่มเติมเกี่ยวกับวิธีการทำงานเหล่านี้กัน
คุณสามารถนึกถึง WordPress hook เป็นเหตุการณ์ที่เกิดขึ้นพร้อมกับชื่อ ตัวอย่างที่มีอยู่ในแกน WordPress เรียกว่า save_post ด้วย hooks เราพูดโดยพื้นฐานว่าเมื่อดำเนินการ save_post เราต้องการให้ hook หรือ filter ของเรา แนบ และทำงานควบคู่ไปกับมัน
เราแนบสิ่งที่เรียกว่าการโทรกลับหรือฟังก์ชันการโทรกลับเข้ากับ hooks ใน WordPress นี่เป็นเพียงวิธีแฟนซีที่จะบอกว่าเรากำลังขอให้ WordPress เรียกใช้โค้ดที่มีอยู่ในฟังก์ชันที่เราสร้างขึ้นเมื่อเหตุการณ์ถูกไล่ออกโดยที่เรา "ติดใจ" (เช่น save_post ในตัวอย่างด้านบน)
แม้ว่าการเพิ่ม WordPress hooks นั้นง่ายพอ แต่เราจะสำรวจในภายหลัง จำไว้ว่าการเรียกกลับที่เขียนไม่ถูกต้องเพียงครั้งเดียวสามารถทำลายสายการเรียกกลับของคุณได้อย่างสมบูรณ์ หากสิ่งนี้เกิดขึ้น ลิงก์ที่ขาดในห่วงโซ่ของการเรียกกลับสามารถทำลายการทำงานหนักของคุณทั้งหมดได้อย่างสมบูรณ์! สำรองข้อมูลก่อนทำการเปลี่ยนแปลงทุกครั้ง ใช้ประโยชน์จากปลั๊กอินสำรองของ WordPress ที่น่าเชื่อถือก่อนที่คุณจะทำการเปลี่ยนแปลงใดๆ
สนใจรายละเอียดทางเทคนิคเพิ่มเติมเกี่ยวกับวิธีการทำงานของ hooks หรือไม่? ตรวจสอบส่วนถัดไป! เรามีคำอธิบายที่เจาะลึกยิ่งขึ้น รวมทั้งบทช่วยสอนเกี่ยวกับการสร้างเบ็ดการดำเนินการแรกและเบ็ดตัวกรองตัวแรกของคุณ!
Hooks ใน WordPress ทำงานอย่างไร
จำไว้ว่าแม้ว่าจะมีข้อแตกต่างเล็กน้อย แต่ Action hook และ filter hook ใน WordPress นั้นส่วนใหญ่เหมือนกัน มาดูวิธีการทำงานของ hooks เหล่านี้กัน เราจะพูดถึงตัวอย่างและบทช่วยสอนในบทความต่อไป
ตะขอทั้งสองประเภทต้องลงทะเบียนกับ WordPress ก่อนใช้งาน ซึ่งจะทำให้ CMS มีรายการฟังก์ชันที่จะแนบเมื่อมีเหตุการณ์ที่เรียกใช้ซึ่งเราได้ "ขอ" โค้ดของเรา นอกจากนี้ ตรวจสอบให้แน่ใจว่าได้ลงทะเบียนการดำเนินการเป็นการดำเนินการ และลงทะเบียนตัวกรองเป็นตัวกรอง
เมื่อเพิ่มการดำเนินการ ให้ใช้ประโยชน์จากฟังก์ชันหลักของ WordPress add_action() เมื่อเพิ่มตัวกรอง ให้ใช้ฟังก์ชันหลักของ WordPress ที่เรียกว่า add_filter() หากการเรียกกลับของคุณ (ทำงานต่อเนื่องกันเมื่อกิจกรรมหรือการดำเนินการของคุณทำงาน) ไม่ส่งคืนข้อมูลใดๆ คุณต้องลงทะเบียนเป็นการดำเนินการ หากส่งคืนสิ่งที่ WordPress อ้างถึงว่าเป็นข้อมูลที่กรองได้ ให้ลงทะเบียนเป็นตัวกรอง
สิ่งที่คุณระบุในฟังก์ชันเหล่านี้จะทำงานเมื่อผู้ใช้เปิดไซต์ของคุณ WordPress มีตัวสร้างภายในที่รวบรวมการกระทำและตัวกรองเหล่านี้ทั้งหมดไว้ด้วยกันสำหรับเรา นอกจากนี้ยังมีฟังก์ชันการลบที่สอดคล้องกันสำหรับการดำเนินการและตัวกรอง สิ่งเหล่านี้สามารถใช้เพื่อกำจัดฟังก์ชันออกจากสายการโทรกลับของคุณ มักมีอยู่ในคำสั่งแบบมีเงื่อนไขใน WordPress PHP
เช่นเดียวกับฟังก์ชัน add ของเรา พวกเขาเรียกว่า remove_action() และ remove_filter()
ฉันจะสร้างตะขอบน WordPress ได้อย่างไร
ถึงเวลาแล้วที่เราจะสร้างเบ็ดแรกของเราใน WordPress! จำไว้ว่าการสร้าง hooks นั้นเกี่ยวข้องกับการเพิ่มโค้ดที่กำหนดเองซึ่งจะแสดงและแสดงผลต่อผู้ใช้เว็บไซต์ของเรา
โปรดทราบว่าทุกครั้งที่เราเพิ่มรหัสที่กำหนดเอง เราจะเพิ่มระดับความเสี่ยงด้านความปลอดภัย นั่นเป็นเหตุผลที่ตอนนี้เป็นเวลาที่เหมาะสมที่สุดที่จะทำให้แน่ใจว่าคุณมีปลั๊กอินความปลอดภัย WordPress ที่คุณสามารถติดตั้งและพร้อมใช้งานได้อย่างวางใจ วิธีนี้ช่วยให้อุ่นใจและบรรเทาภัยคุกคามที่อาจเกิดขึ้นกับไซต์ของคุณผ่านโค้ดที่กำหนดเองซึ่งอาจแนะนำช่องโหว่ใหม่
มาดูกันว่าเราสามารถสร้าง action hook แบบง่ายๆ บน WordPress ได้อย่างไร จากนั้นเราจะดูตัวอย่างของตัวกรองเบ็ดใน CMS
ฉันจะสร้าง Action Hook ใน WordPress ได้อย่างไร
สำหรับตัวอย่างการดำเนินการ เรามาทำบางสิ่งที่นักพัฒนา WordPress เกือบทั้งหมดต้องทำในบางครั้ง: ปรับเนื้อหาในหน้าเข้าสู่ระบบ WordPress หน้าเป็นแบบทั่วไปมาก
ตัวอย่างเช่น หากคุณจัดการไซต์ WordPress สำหรับสถาบันการศึกษา พวกเขาอาจขอให้คุณเตือนนักเรียนให้ใช้ที่อยู่อีเมลของมหาวิทยาลัยเพื่อเข้าสู่ระบบพอร์ทัล WordPress ของตน เราสามารถเพิ่มการเตือนความจำง่ายๆ ใต้ช่อง "ชื่อผู้ใช้" และ "รหัสผ่าน" ที่ระบุว่า " อย่าลืมใช้อีเมล @myuniversity.edu เป็นชื่อผู้ใช้ของคุณ " เพื่อลดการโทรไปยังแผนกไอทีเพื่อขอความช่วยเหลือในการเข้าสู่ระบบ
แน่นอนว่าสิ่งนี้จะสอดคล้องกับตะขอแอ็คชั่นมากกว่าตะขอตัวกรอง นั่นเป็นเพราะการปรับง่ายๆ เช่น การแก้ไขข้อความในหน้าเข้าสู่ระบบของผู้ใช้หลัก ไม่ได้ส่งคืนข้อมูลใดๆ เพื่อ กรองจริงๆ
อันดับแรก เราต้องคิดให้ออกว่าจุดไหนที่จะเชื่อมโยงการกระทำของเรา ในกรณีส่วนใหญ่ การดูไฟล์ PHP ที่คุณต้องการเพิ่มเนื้อหานั้นสามารถเข้าใจได้ลึกซึ้งมาก เมื่อดูไฟล์ WordPress ที่มีเนื้อหาการเข้าสู่ระบบ มีทริกเกอร์การดำเนินการหลายอย่าง ในตัวอย่างของเราที่เตือนให้นักเรียนใช้อีเมลสถาบัน คุณจะสังเกตเห็นโค้ดต่อไปนี้ค่อนข้างน่าสนใจในไฟล์ PHP ของหน้าเข้าสู่ระบบ:
do_action( 'login_footer' );
ฟังก์ชัน do_action เป็นฟังก์ชันหลักของ WordPress ที่ดำเนินการขอการดำเนินการตามคำขอ แน่นอนว่าเราได้ลงทะเบียนฟังก์ชันทั้งหมดที่เราต้องการแนบกับเบ็ดนี้แล้ว
ในกรณีนี้ “login_footer” เป็นตะขอที่สร้างไว้ล่วงหน้าโดยทีม WordPress แม้ว่ามันจะมีอยู่แล้วภายใน แต่เรายังสามารถแนบรหัสของเราเข้าไปได้ โดยค่าเริ่มต้น hook นี้จะโหลดเนื้อหาส่วนท้ายของหน้าเข้าสู่ระบบทั่วไป ส่วนท้ายจะเป็นสถานที่ในอุดมคติสำหรับข้อความของเรา ซึ่งเป็นสาเหตุที่ทำให้เราใช้ประโยชน์จากส่วนท้ายของหน้านี้
เราสามารถเพิ่มฟังก์ชัน PHP ใหม่ให้กับ wp-login.php เพื่อเริ่มต้นได้ สิ่งที่เราต้องทำคือพิมพ์ข้อความออกมาหนึ่งบรรทัด เช่น:
ฟังก์ชัน add_uni_email_reminder() { <p>อย่าลืมใช้อีเมล @myuniversity.edu เป็นชื่อผู้ใช้ของคุณ!< /p> } do_action( 'login_footer', 'add_uni_email_reminder' );
ในกรณีนี้ เราเพิ่งสร้าง "การกระทำ" ใหม่ใน ไฟล์ wp-login.php ชื่อของฟังก์ชันของ action hook (add_uni_email_reminder) โดยไม่ต้องใช้วงเล็บพารามิเตอร์ สามารถเพิ่มลงในรายการพารามิเตอร์ของ do_action() เพื่อลงทะเบียนให้ทำงานเมื่อแสดงส่วนท้ายถัดไป

ฉันจะสร้างตัวกรองตะขอใน WordPress ได้อย่างไร
ตอนนี้เรากำลังอยู่ในม้วน! เราได้เรียนรู้พื้นฐานของ WordPress hooks และวิธีการใช้พลังของมัน เราได้ทำการปรับเปลี่ยนตัวเองเพียงเล็กน้อย! เหลือเพียงส่วนสำคัญคือการฝึกกับขอเกี่ยวกรอง จำไว้ว่าสิ่งเหล่านี้คือ hooks ที่ส่งคืนข้อมูลบางประเภทที่เราอาจกรองผ่าน สิ่งเหล่านี้ซับซ้อนกว่า action hook เล็กน้อย แต่ตอนนี้เมื่อคุณเข้าใจพื้นฐานของ hooks แล้ว ก็ควรจะง่ายขึ้นเล็กน้อย
มาเริ่มกันเลยกับตัวกรองเบ็ด WordPress ของเรา อันดับแรก เราจะต้องตัดสินใจว่าเราต้องการเพิ่มตัวกรองใด สิ่งหนึ่งที่ลูกค้าของคุณสามารถร้องขอได้คือการปรับแต่งฟังก์ชันการเพิ่มหน้า นี่คือที่ที่ผู้ใช้ WordPress สามารถเพิ่มโพสต์บล็อกใหม่ได้ เพื่อให้ง่ายที่สุด สมมติว่าเราต้องการแก้ไขข้อความ "ป้อนชื่อที่นี่" ที่อยู่ในกล่องข้อความ "ชื่อ" สมมติว่าเราต้องการทำให้เฉพาะเจาะจงมากขึ้น และกำหนดให้ "ป้อนชื่อโพสต์ของบล็อก" แทน
โปรดสังเกตว่าในตัวอย่างเบ็ดตัวกรองด้านล่าง ฟังก์ชันของเรามีพารามิเตอร์ นอกจากนี้ การดำเนินการตามจริงของตัวกรองของเรายังมีพารามิเตอร์ "ลำดับความสำคัญ" เพิ่มเติมอีกด้วย คุณจะสังเกตเห็นว่าฟังก์ชันจริงที่เราใช้ในการลงทะเบียน hook ของเรานั้นเหมือนกับตัวอย่าง "action" add_action ทุกประการ วิธีที่เราสามารถบอกได้ว่าฟังก์ชันนี้เป็นตัวกรองเบ็ดแทนที่จะเป็นแอ็คชันเบ็ดคือเมื่อใช้งานจริง ฟังก์ชันที่ทำงานตามที่เราเห็นในโค้ดหลักของ WordPress คือ apply_filters( 'enter_title_here', __( 'ป้อนชื่อที่นี่' ), $โพสต์ ); . เรากำลังใช้ ตัวกรอง ตามชื่อของฟังก์ชัน
ซึ่งมักจะเป็นจุดสะดุดสำหรับผู้ใช้ใหม่ มันเป็นเพียงปัญหาการใช้ถ้อยคำเล็กน้อย เมื่อคุณผ่านมันไปได้แล้ว การถอดรหัสความแตกต่างระหว่าง hooks และตัวกรองใน WordPress กลายเป็นเรื่องง่าย! โดยไม่ต้องลาก่อน มาดำดิ่งสู่การเปลี่ยนข้อความตัวยึดตำแหน่งกันเถอะ!
ฟังก์ชั่น our_new_title_here( $title ) { $title = __( 'ป้อนชื่อโพสต์ของบล็อก', 'โดเมนข้อความ' ); ส่งคืนชื่อ $; } add_action( 'enter_title_here', 'our_new_title_here', 10 );
คุณอาจสงสัยว่า “10” หมายถึงอะไรในฟังก์ชัน add_action ของเรา หวังว่าคุณจะเข้าใจพารามิเตอร์สองตัวแรก อันแรกคือตะขอ WordPress เริ่มต้น และอันที่สองคือชื่อของฟังก์ชันและตัวกรองที่เราแนบมา enter_title_here “10” คือระดับความสำคัญที่เรากำหนดให้กับตัวกรองนี้
โปรดจำไว้ว่า ทั้งการดำเนินการและตัวกรองใน WordPress เป็นชุดของ "การเรียกกลับ" แบบเรียงซ้อนหรือฟังก์ชันที่กำหนดเองที่ทำงานอยู่ สิ่งเหล่านี้ได้รับระดับความสำคัญที่แตกต่างกัน เราจะสำรวจความหมายของตัวเลขที่แตกต่างกัน พารามิเตอร์ที่ยอมรับได้ ฯลฯ ในภายหลังเล็กน้อย อย่างไรก็ตาม สิ่งสำคัญคือต้องเข้าใจว่า 10 เป็นระดับความสำคัญเริ่มต้น "ปกติ" ของ WordPress สำหรับตัวกรองและการดำเนินการในตอนนี้
WordPress Hooks เก็บไว้ที่ไหน?
คุณอาจสงสัยว่า WordPress สามารถจัดเก็บการกระทำและตัวกรองเหล่านี้ทั้งหมดไว้ที่ใด เราได้อ้างอิงถึงแกนหลักของ WordPress แต่นี่เป็นเพียงตำแหน่งของการดำเนินการและตัวกรองในตัวและฟังก์ชันที่ แนบมา ด้วย ผู้ใช้ WordPress ที่มีประสบการณ์มักจะรู้ว่า hooks เหล่านี้ไม่ได้ถูกเก็บไว้ในฐานข้อมูลใด ๆ ที่สร้างขึ้นเมื่อติดตั้ง WordPress
หนึ่งในคุณสมบัติที่โดดเด่นที่สุดของการดำเนินการและตัวกรองใน WordPress คือไม่ได้ "จัดเก็บ" ไว้ที่ใดเลย! เมื่อเราเพิ่มการกระทำหรือตัวกรองแล้ว การกระทำหรือตัวกรองนั้นสามารถเข้าถึงได้ทั่วโลกทั่วทั้งไซต์ WordPress ของเรา หากคุณคิดว่าไม่มีทางเป็นไปได้ที่มันถูกเก็บไว้ ที่ไหนเลย คุณคิดถูก!
แม้ว่าโครงสร้างจะค่อนข้างซับซ้อน แต่ก็มีตัวแปร PHP ตัวหนึ่งที่จัดเก็บการกระทำและตัวกรองทั้งหมดของเราไว้ ตัวแปรนี้เป็นโกลบอลและเรียกว่า $wp_filter อย่ายุ่งกับตัวแปรนี้โดยตรง!
สำหรับผู้ที่สนใจรายละเอียดทางเทคนิค ตัวแปรนี้ $wp_filter เป็นอาร์เรย์ PHP มีชุดอ็อบเจ็กต์ขนาดใหญ่ที่เป็นประเภท WP_HOOK ภายในไฟล์ PHP คุณสามารถอ่านได้ใน wp-includes/class-wp-hook.php มีวิธีการที่สำคัญวิธีหนึ่ง: this->apply_filters() วิธีนี้เป็นวิธีที่ทำให้เกิดการโทรกลับทั้งหมดของเราและ "ลงทะเบียน" ตัวกรองและตะขอที่กำหนดเองของเรา โดยพื้นฐานแล้วมันคือขนมปังและเนยของ WordPress hooks
เพื่อที่จะใช้ประโยชน์จากคุณสมบัติที่ยอดเยี่ยมของ WordPress ได้อย่างเต็มที่ เราจำเป็นต้องรู้จัก WordPress hooks ที่พบบ่อยที่สุด ไม่ต้องมองหาที่อื่นนอกจากสูตรโกงของเราด้านล่าง!
รายการ WordPress Hooks: สูตรโกง WordPress Hooks
เริ่มต้นด้วยความสมจริงเพียงเล็กน้อย: ไม่มีทางเป็นไปได้ที่เราจะข้าม ทุกสิ่ง ใน WordPress โชคดีที่นักวิจัยบางคนได้รวบรวมรายการ (ตามตัวอักษร) ทุกการกระทำและตัวกรอง สำหรับผู้ที่อยากรู้อยากเห็น คุณสามารถดูรายชื่อ WordPress hooks ทั้งหมดได้ที่นี่ แต่โปรดระวังคำเตือนด้านความปลอดภัยเกี่ยวกับ hooks แต่ละรายการ คุณไม่ควรใช้สิ่งที่ระบุว่า "เลิกใช้แล้ว" ซึ่งหมายความว่าอาจมีหรือไม่ได้รับการสนับสนุนใน WordPress เวอร์ชันที่ทันสมัยที่สุด แต่ไม่ว่าด้วยวิธีใด ในไม่ช้าพวกเขาจะไม่ได้รับการสนับสนุน
เป็นไปได้ 90% ของเวลาทั้งหมด คุณจะสนใจ WordPress hooks เพียงไม่กี่ตัวเท่านั้น ต่อไปนี้คือการดำเนินการและตัวกรองที่ได้รับความนิยมสูงสุด 5 ประการใน WordPress พร้อมกับคำอธิบายสั้น ๆ ว่ามันคืออะไร!
- add_setting() – เช่นเดียวกับชื่อของมัน การกระทำนี้จะเพิ่มการตั้งค่า WordPress ของคุณ คุณอาจไม่ต้องการรวมการกระทำนี้ในหน้าที่ผู้ใช้เห็น แต่อาจช่วยชีวิตได้หากคุณกำลังแก้ไขหน้าการดูแลระบบ
- apply_filters() – อันนี้ดูคุ้นๆ ไหม? มันควรจะเพราะเราใช้มันก่อนหน้านี้! สิ่งนี้เรียกการโทรกลับทั้งหมดที่เกี่ยวข้องกับเบ็ดทันที
- esc_attr() – ชื่อนี้เป็นชวเลขสำหรับ “escape HTML attributes” การหลีกเลี่ยง HTML หมายความว่าเราใช้รหัส ASCII สำหรับสัญลักษณ์ HTML วิธีนี้ใช้กันอย่างแพร่หลายใน "การป้อนข้อมูล" ไปยังหน้าต่างๆ กล่าวอีกนัยหนึ่ง การกระทำนี้เป็นสิ่งที่พึงปรารถนาอย่างยิ่งที่จะแนบกับ hook ที่รันเมื่อผู้ใช้ส่งแบบฟอร์ม ช่วยป้องกันผู้ใช้จากการโจมตีไซต์ของคุณด้วยการโจมตีแบบ cross-site scripting โดยเฉพาะ
- the_content() – ชื่อของ hook นี้อาจฟังดูง่าย เพราะมันใช่! เพียงแค่ดึงเนื้อหาของโพสต์ปัจจุบันที่กำลังดูอยู่ วิธีนี้เหมาะอย่างยิ่งหากคุณอนุญาตให้ผู้ใช้ส่งออกเนื้อหาของโพสต์ ตัวอย่างเช่น บางไซต์เสนอให้ผู้ใช้ Premium สามารถส่งออกบทความใดๆ เป็นไฟล์ PDF ได้
- wp_nav_menu() – ชวเลขสำหรับ “WordPress Navigation Menu” เบ็ดนี้เป็นขอเกี่ยวการดำเนินการ ใช้เพื่อแสดงเมนูนำทางหลักที่คุณสร้างขึ้นเมื่อคุณสร้างไซต์ WordPress เป็นครั้งแรก นี่เป็นสิ่งที่ดีถ้าคุณมีหน้าที่มีรูปแบบที่แตกต่างกันอย่างมากและต้องการแสดงเมนูของคุณในพื้นที่อื่น
WordPress Hooks ทำงานในลำดับใด ลำดับการยิงของ WordPress Hooks
น่าเสียดายที่ลำดับที่แน่นอนของ WordPress hooks นั้นไม่ชัดเจนอย่างที่คุณคิด นี่เป็นเพราะปริมาณของตะขอ นักวิจัยรายหนึ่งได้ทำการวิเคราะห์ขั้นสูงเพื่อนับจำนวน hooks ที่ทำงานอยู่และลำดับการทำงานเมื่อมีการเข้าชมโฮมเพจของไซต์ WordPress
ราวกับว่าสิ่งนี้ไม่ซับซ้อนเพียงพอ WordPress hooks บางตัวมี hooks ติดอยู่กับลำดับความสำคัญที่หลากหลาย! คุณสามารถดูการเรียกใช้ hooks หลายร้อยรายการและคำสั่งซื้อในโพสต์นี้เกี่ยวกับลำดับการเริ่มทำงานของ hooks ของ WordPress เพียงทราบ: คุณไม่ควรพยายามเรียกใช้การวิเคราะห์นี้ในสิ่งใดนอกจากเซิร์ฟเวอร์ทดสอบที่คุณสามารถยอมสูญเสียทุกอย่างได้!
แม้ว่าเราจะไม่สามารถทำอะไรได้มากเกี่ยวกับลำดับของ hook เริ่มต้น แต่เราสามารถทำบางสิ่งเกี่ยวกับลำดับของ hook ที่เราระบุได้ นี่คือที่มาของลำดับความสำคัญของ hooks เราพูดถึงมันก่อนหน้านี้
ลำดับความสำคัญใน WordPress Hooks ทำงานอย่างไร
ดังที่เราได้กล่าวไปแล้ว ระดับความสำคัญเริ่มต้นที่กำหนดให้กับ hook โดย WordPress คือ “10” สิ่งที่คุณตัดสินใจจัดลำดับความสำคัญ จำไว้ว่าค่าต้องเป็นจำนวนเต็มบวก ซึ่งหมายความว่า ขออภัย “0” ไม่ใช่ค่าที่ถูกต้อง นอกจากนี้ -100 จะไม่ถูกต้อง และ 0.5 จะไม่ถูกต้อง อย่างไรก็ตาม 1 จะใช้งานได้เช่นเดียวกับ 1111
โดยทั่วไป ยิ่งจำนวนเต็มที่น้อยเท่าใด ลำดับความสำคัญก็จะยิ่งต่ำลง หากคุณต้องการให้ hook ทำงานหลังจาก hook คุณได้กำหนดค่าเริ่มต้นเป็น 10 ตัวอย่างเช่น คุณสามารถกำหนดลำดับความสำคัญของ hook เป็น 9 ได้ ลำดับความสำคัญ. นี่คือถ้าคุณไม่สนใจว่าพวกเขาจะทำงานในลำดับใด
บทสรุป: Hooks ใน WordPress
หนึ่งในสิ่งกีดขวางที่ใหญ่ที่สุดสำหรับนักพัฒนา WordPress ใหม่คือข้อมูลที่ไม่ได้มาตรฐานมากเพียงใด แม้ว่าคุณจะพบบล็อกทางเทคนิคมากมาย แต่หลายๆ บล็อกก็ครอบคลุมหัวข้อที่แคบ และอาจรวบรวมได้ยาก
วิธีที่ดีที่สุดคือการเริ่มทดลองกับ WordPress action hooks และ filter hooks บนไซต์ของคุณ เมื่อคุณสร้าง hooks ของ WordPress ที่ซับซ้อนขึ้นแล้ว คุณจะต้องเรียนรู้ hooks ที่คุณมักจะใช้บ่อยขึ้น เมื่อเวลาผ่านไป คุณจะจำตะขอเหล่านี้ได้ ก็เป็นขั้นตอนที่ยากลำบากและไม่มีใครมีความสามารถในการจำหนึ่งตะขอเหล่านี้ทุก
Codex ของ WordPress เป็นแหล่งข้อมูลที่ดีที่สุดเพียงแหล่งเดียวที่จะใช้ในการเดินทางเพื่อเป็นนักพัฒนา WordPress อันดับต้นๆ ของโลก
Kristen ได้เขียนบทช่วยสอนเพื่อช่วยเหลือผู้ใช้ WordPress มาตั้งแต่ปี 2011 โดยปกติแล้ว คุณจะพบว่าเธอทำงานเกี่ยวกับบทความใหม่ๆ สำหรับบล็อก iThemes หรือการพัฒนาทรัพยากรสำหรับ #WPprosper นอกเวลางาน คริสเตนชอบจดบันทึก (เธอเขียนหนังสือสองเล่ม!) เดินป่าและตั้งแคมป์ ทำอาหาร และผจญภัยทุกวันกับครอบครัวของเธอ โดยหวังว่าจะมีชีวิตที่เป็นปัจจุบันมากขึ้น
