WordPress add_filter เทียบกับฟังก์ชั่น add_action พื้นฐาน

เผยแพร่แล้ว: 2021-08-24

การเปิดเผยข้อมูล: โพสต์นี้มีลิงค์พันธมิตร ฉัน อาจได้รับค่าตอบแทนเมื่อคุณคลิกลิงก์ไปยังสินค้าในโพสต์นี้ สำหรับคำอธิบายเกี่ยวกับนโยบายการโฆษณาของฉัน โปรดไปที่ หน้า นี้ ขอบคุณที่อ่าน!

สารบัญ

  • ฟังก์ชั่น add_filter เทียบกับ add_action ของ WordPress คืออะไร
  • ดังนั้น "Hook" ใน WordPress คืออะไร?
  • ตะขอ ตัวกรอง และการกระทำต่างกันอย่างไร
  • อะไรคือความแตกต่างระหว่าง do_action และ add_action ใน WordPress?
  • อะไรคือความแตกต่างระหว่าง Action Hooks และ Filter Hooks?
  • ตัวกรองทำอะไรใน WordPress?
  • การกระทำทำอะไรใน WordPress?
  • ฉันสามารถใช้ add_action ก่อน add_filter เมื่อปรับแต่งปลั๊กอิน WordPress ได้หรือไม่
  • อะไรคือความแตกต่างที่แท้จริงระหว่าง add_filter hooks กับ add_action hooks ใน WordPress?

ฟังก์ชั่น add_filter เทียบกับ add_action ของ WordPress คืออะไร

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

แต่ก่อนที่คุณจะทำ คุณต้องเข้าใจแนวคิดพื้นฐานของ add_filter กับ add_action ความแตกต่างและวิธีการทำงานบน WordPress ก่อนที่คุณจะเปลี่ยนปลั๊กอินหรือธีมที่เขียนโค้ดเกือบสมบูรณ์แบบให้กลายเป็นเรื่องยุ่งเหยิงไปหมด

“add_action” ใน WordPress คือสิ่งที่คุณใช้สร้างทริกเกอร์ “hook” เมื่อมีอะไรเกิดขึ้นก็ให้ทำอย่างอื่น

“add_filter” ใช้สำหรับ “hook” ข้อมูล เช่น เปลี่ยน/แทนที่ ตัวอย่างเช่น หากมี [some-code] ให้เปลี่ยนเป็น some-other-expanded-code

"เบ็ด" คือ "ฟังก์ชัน" หรือ "วิธีการ" สำหรับตัวกรองหรือการดำเนินการเฉพาะ เพิ่มเติมเกี่ยวกับ "เบ็ด" ด้านล่าง

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

  • การกระทำคือฟังก์ชัน PHP เหล่านั้นที่รันเอาต์พุต
  • ตัวกรองคือฟังก์ชัน PHP ที่ส่งคืนเอาต์พุต

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

ดังนั้น "Hook" ใน WordPress คืออะไร?

Hooks เป็นวิธีหนึ่งที่โค้ดชิ้นหนึ่งจะโต้ตอบ/แก้ไขโค้ดอื่นที่จุดที่กำหนดไว้ล่วงหน้าเฉพาะเจาะจง พวกเขาสร้างรากฐานสำหรับวิธีที่ปลั๊กอินและธีมโต้ตอบกับ WordPress Core แต่ WordPress Core เองก็ใช้กันอย่างแพร่หลายเช่นกัน

ตะขอมีสองประเภท: การกระทำและตัวกรอง ในการใช้อย่างใดอย่างหนึ่ง คุณต้องเขียนฟังก์ชันแบบกำหนดเองที่เรียกว่า " โทรกลับ " จากนั้นลงทะเบียนกับ WordPress hook สำหรับการดำเนินการหรือตัวกรองเฉพาะ ที่ มา : WordPress.org

ตะขอ ตัวกรอง และการกระทำต่างกันอย่างไร

ดังที่ได้กล่าวไว้ข้างต้น "hooks" เป็นชื่อเรียกรวมของตัวกรองและการกระทำ ทั้งสองมีขึ้นเพื่อเปลี่ยนพฤติกรรมปกติของฟังก์ชัน

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

ความแตกต่างอยู่ที่วิธีการใช้ คุณใช้ "การกระทำ" เพื่อเปลี่ยนลักษณะการทำงานของฟังก์ชันทั้งหมดหรือเพื่อเพิ่มบางอย่างลงในฟังก์ชันที่มีอยู่

คุณใช้ "ตัวกรอง" เพื่อเปลี่ยนผลลัพธ์ของฟังก์ชันหรือตัวแปร

อะไรคือความแตกต่างระหว่าง do_action และ add_action ใน WordPress?

"do_action" จะลงทะเบียน "action hook" ในขณะที่ "add_action" เพิ่มฟังก์ชันเรียกกลับให้กับ hook ที่ลงทะเบียนไว้

อะไรคือความแตกต่างระหว่าง Action Hooks และ Filter Hooks?

ตะขอแอคชั่น

“Actions Hooks” มีไว้สำหรับใช้เมื่อแกนหลักหรือปลั๊กอินหรือธีมของ WordPress เปิดโอกาสให้คุณแทรกโค้ดของคุณ ณ จุดใดจุดหนึ่งภายในของพวกเขาเพื่อดำเนินการงานเฉพาะหรือ “การดำเนินการ”

ตะขอกรอง

“Filter Hooks” ทำงานคล้ายกับ “Action Hooks” มาก แต่จุดประสงค์ในการใช้งานคือการรับค่าและอาจคืนค่าเวอร์ชันที่แก้ไขแล้ว

สามารถใช้ “Filter Hook” ได้เช่นเดียวกับ “Action Hook” เช่นเพื่อแก้ไขตัวแปรส่วนกลางหรือสร้าง HTML บางส่วน สมมติว่านั่นคือสิ่งที่คุณต้องทำเมื่อมีการเรียก hook

ตัวกรองทำอะไรใน WordPress?

“ตัวกรอง” นำข้อมูลที่ได้รับ แก้ไข และส่งคืน กล่าวอีกนัยหนึ่งคือกรองบางสิ่งและส่งกลับไปยังเบ็ดเพื่อใช้งานต่อไป

ดังนั้น ตัวกรองจึงถูกใช้เพื่อแก้ไขบางสิ่งในลักษณะเฉพาะเพื่อให้โค้ดใช้การแก้ไขในภายหลัง

การกระทำทำอะไรใน WordPress?

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

การดำเนินการขัดจังหวะการไหลของโค้ดเพื่อทำบางสิ่ง จากนั้นกลับสู่โฟลว์ปกติโดยไม่ต้องแก้ไขอะไรเลย

ดังนั้น เมื่อ “ตัวกรอง” เป็นชุดของพารามิเตอร์หรือคำสั่ง “การกระทำ” คือการดำเนินการตามคำสั่ง

ฉันสามารถใช้ add_action ก่อน add_filter เมื่อปรับแต่งปลั๊กอิน WordPress ได้หรือไม่

โดยพื้นฐานแล้วไม่สำคัญว่าคุณใช้ add_action() และ add_filter() ในลำดับใด

สิ่งที่สำคัญคือลำดับที่เรียก do_action() และ apply_filters() ที่เกี่ยวข้อง

ดังนั้น ถ้า “apply_filters” เช่น ('wp_insert_post_data') ถูกเรียกใช้ก่อน “do_action”('save_post') ก็จะไม่ทำงาน คุณจะต้องคิดหาวิธีอื่นเพื่อให้ได้ผลลัพธ์ที่ต้องการ

อะไรคือความแตกต่างที่แท้จริงระหว่าง add_filter hooks กับ add_action hooks ใน WordPress?

ในความเป็นจริง “Filter Hooks” นั้นค่อนข้างเป็นชุดของ “Action Hooks” “Filter Hooks” สามารถทำทุกอย่างที่ “Action Hooks” ทำได้และมากกว่านั้นอีกเล็กน้อย แม้ว่าผู้พัฒนาจะไม่มีความรับผิดชอบในการคืนค่าด้วย “Action Hook” ที่พวกเขาทำกับ “Filter Hook”

“Filter hooks” โดยทั่วไปจะกำหนดพารามิเตอร์ของงาน ในขณะที่ “Action hooks” ดำเนินการงาน สำหรับข้อมูลเพิ่มเติมเกี่ยวกับความแตกต่างระหว่าง hooks "add_filter" และ hooks "add_action" โปรดดู เอกสาร WordPress อย่างเป็นทางการ นี้ ในส่วนนักพัฒนาบน WordPress.org