การสร้างปลักอินของเวิร์ดเพรสนั้น มีรูปแบบหรือที่เรียกว่าลีลาอยู่ 2 รูปแบบ
- แบบที่ 1 เขียนเป็น function style
- แบบที่ 2 เขียนเป็น class style
แบบที่เป็น function style นั้น ก็เขียนเป็นฟังก์ชั่นนั่นแหละ ประกาศเป็นฟังก์ชั่นขึ้นมาว่าจะให้ทำงานอะไร จากนั้นเอาฟังก์ชั่นนั้นๆ ไป hook ตำแหน่งที่ต้องการ
ตัวอย่าง
add_action( 'init', 'process_post' );
function process_post() {
if( isset( $_POST['unique_hidden_field'] ) ) {
// process $_POST data here
}
}
ข้อดีของการเขียนแบบนี้คือ มันง่าย คนส่วนมากก็เขียนกันแบบนี้ แต่ขัอเสียของมันก็คือเราต้องหาวิธีเลี่ยงไม่ให้ชื่อฟังก์ชั่นไปซ้ำกับชาวบ้านในโลกนี้
การเขียนแบบที่ 2 ที่เป็น class style นั้นก็เขียนโค้ดให้เป็นคลาส คนอื่นมองยังไงไม่รู้นะ ผมมองว่า คลาสมันก็แค่กรอบที่เอามาห่อฟังก์ชั่นไว้ เพื่อให้ฟังก์ชั่นชื่อซ้ำกับชาวบ้านยากขึ้น
ตัวอย่าง
/**
* Class WP_Docs_Class.
*/
class WP_Docs_Class {
/**
* Constructor
*/
public function __construct() {
add_action( 'save_post', array( $this, 'wpdocs_save_posts' ) );
}
/**
* Handle saving post data.
*/
public function wpdocs_save_posts() {
// do stuff here...
}
}
$wpdocsclass = new WP_Docs_Class();
ข้อดีของการเขียนแบบนี้คือไม่ต้องระวังเรื่องชื่อฟังก์ชั่นช้ำกับชาวบ้านมาก เพราะมันถูกห่อด้วยคลาสชั้นนึงแล้ว
ชอบแบบไหนรักแบบไหน ก็เลือกเอาครับ ผลลัพธ์ออกมาเหมือนกัน เขียนแล้วให้มีความสุขก็เป็นอันใช้ได้