ลีลาการเขียนปลักอิน 2 แนวของเวิร์ดเพรส

การสร้างปลักอินของเวิร์ดเพรสนั้น มีรูปแบบหรือที่เรียกว่าลีลาอยู่ 2 รูปแบบ 

  1. แบบที่ 1 เขียนเป็น function style
  2. แบบที่ 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();

ข้อดีของการเขียนแบบนี้คือไม่ต้องระวังเรื่องชื่อฟังก์ชั่นช้ำกับชาวบ้านมาก เพราะมันถูกห่อด้วยคลาสชั้นนึงแล้ว 

ชอบแบบไหนรักแบบไหน ก็เลือกเอาครับ  ผลลัพธ์ออกมาเหมือนกัน เขียนแล้วให้มีความสุขก็เป็นอันใช้ได้