add_action() เป็นฟังก์ชันสำหรับเรียกใช้งาน Hook ของ WP ที่เอาไว้ให้นักพัฒนาสามารถเขียน code เพิ่มเติมเข้าไปได้ โดยที่ไม่ต้องไปแก้ไขไฟล์หลักของ WP ตรง ๆ ซึ่งเป็นวิธีที่ผิดและไม่ควรทำอย่างยิ่ง เพราะหากเราต้องการจะแก้ไขหรือเพิ่มเติมฟังก์ชันของเราเข้าไปในส่วนใดส่วนหนึ่งของ WP โดยการเข้าไปแก้ไขไฟล์ในโฟล์เดอร์ wp-admin หรือ wp-include เป็นวิธีที่ผิด เพราะจะทำให้เกิดปัญหาตอนเราอัพเดท WP ของเรา เพราะไฟล์ที่เราแก้ไขก็จะถูกทับด้วยไฟล์ใหม่ที่ถูกอัพเดทมากจาก WP นั่นเอง
ดังนั้น WP จึงได้สร้างฟังก์ชัน add_action มาให้เพื่อให้เราสามารถเขียน code ของเราเพิ่มไปยังส่วนใดส่วนหนึ่งของ WP ได้โดยไม่ต้องไปแตะ Code ในส่วนที่เป็นไฟล์ Core ของ WP
รูปแบบฟังก์ชัน add_action()
add_action( string $tag, callable $function_to_add, int $priority = 10, int $accepted_args = 1 )
คำอธิบายของค่าพารามิเตอร์แต่ละตัว
- string $stag ค่าพารามิเตอร์ตัวนี้คือชื่อของ hook ที่เราต้องการจะเรียกใช้ เช่น ‘wp_head’
- callable $function_to_add ค่าพารามิเตอร์ตัวนี้คือชื่อฟังก์ชันของเราที่เราเขียนขึ้นมาเอง เพื่อเพิ่ม code ของเราเข้าไปใน hook ที่เรากำหนด
- int $priority ค่าพารามิเตอร์ตัวนี้คือการจัดลำดับการทำงานให้กับมัน ว่าจะให้มันทำงานเป็นลำดับที่เท่าไหร่ ค่าเริ่มต้นคือ 10
- int $accepted ค่าพารามิเตอร์ตัวนี้คือการกำหนดจำนวนพารามิเตอร์ของฟังก์ชันเราว่ามีได้กี่พารามิเตอร์ ค่าเริ่มต้นคือ 1
วิธีการใช้งาน add_action()
อันดับแรกเลยเราต้องรู้ก่อนว่าเราต้องการจะเรียก hook ตัวไหน รายการ hook ทั้งหมดของ WP คลิกดูได้ที่นี่
ในตัวอย่างนี้เราจะมายกตัวอย่างการเรียก hook ที่ชื่อว่า wp_head กัน
เจ้า hook ที่ชื่อว่า wp_head นี้มันเกิดขึ้นหลัง WP ได้ทำการสร้าง code ทั้งหมดที่อยู่ภายในแท็ก <head></head> เสร็จสิ้น หลังจากเสร็จสิ้น WP ก็สร้าง hook ที่ชื่อว่า wp_head ขึ้นมาให้เหล่านักพัฒนาทั้งหลายสามารถที่จะเรียกใช้ hook wp_head เพื่อเขียน code ตัวเองเพิ่มต่อจาก code เดิมที่ WP ทำเอาไว้ได้ ตัวอย่างเช่น ผมต้องการจะใส่ code ด้านล่างนี้เข้าไปใน <head>
<style> .wp_head_example { background-color : #f1f1f1; } </style>
อย่างแรกเลยผมก็จะสร้าง function ขึ้นมาใหม่หนึ่งฟังก์ชัน
function add_my_style_to_head() { ?> <style> .wp_head_example { background-color : #f1f1f1; } </style> <?php }
หลังจากที่ผมสร้าง function เสร็จเรียบร้อยแล้ว ผมก็ต้องจับเจ้าฟังก์ชันของผมยัดใส่ add_action() ซึ่งจะได้ดังนี้
add_action(‘wp_head’, ‘add_my_style_to_head’);
Code ที่สมบูรณ์ก็จะได้เป็นดังนี้
function add_my_style_to_head() { ?> <style> .wp_head_example { background-color : #f1f1f1; } </style> <?php } add_action('wp_head', 'add_my_style_to_head');
Leave A Comment
You must be logged in to post a comment.