เพิ่งลองหัดเขียน WordPress Plugin โดยอ่านจาก Tutorial: How to write a WordPress Plugin? ขอบันทึก + แปลเป็นภาษาไทยเก็บไว้สักหน่อย
ก่อนจะเขียนเราควรจะระลึกไว้ก่อนว่า
- ชื่อ plugin ควรจะไม่ซ้ำใคร ถ้าชื่อซ้ำกันแล้ว plugin ที่เราเขียนอาจจะไปมีผลกระทบกับ plugin อันอื่นที่ใช้อยู่
- เราควรจะเขียน comment ตรงส่วนที่คิดว่าจำเป็นไว้ในโค้ดด้วย เพื่อที่คนอื่นเข้ามาพัฒนาต่อจะได้ไม่มึน
- เราควรจะทดสอบ plugin ที่เขียนเสร็จแล้วบน localhost กับ WordPress เวอร์ชั่นล่าสุด ก่อนที่จะนำไปใช้จริงในตัว production
ถ้าโอเคทั้งหมด 3 ข้อแล้ว เราก็จะมาสร้าง plugin ที่ให้แสดงคำว่า Hello World บนหน้า WordPress กัน 🙂
ขั้นตอน แรก ให้เราไปสร้าง folder ชื่อ hello-world ใน wp-content/plugins และใน folder นี้ควรที่จะต้องมีไฟล์อย่างน้อย 2 ไฟล์ นั่นก็คือ
- ไฟล์ PHP ที่มีชื่อเดียวกับชื่อ plugin ในที่นี้คือ hello-world.php
- ไฟล์ readme.txt ไฟล์นี้จำเป็นต้องมีถ้าต้องการที่จะอัพโหลดไปที่ WordPress Plugin Directory และเราก็ควรจะเขียนตามฟอร์แมตของเค้าด้วย ลองดูจากตัวอย่าง readme sample
ให้สร้างไว้ทั้ง 2 ไฟล์เลย
ในการเขียน plugin นั้น จะมีสิ่งเล็กๆ ที่เรียกว่า hooks ซึ่งจะมีฟังก์ชั่นหลักๆ คือ
- add_action($tag, $action) -- ก็ตามชื่อครับ ว่าเราจะเพิ่ม action หนึ่งๆ ไว้ตามจุดต่างๆ ที่เราต้องการให้ WordPress รัน
- add_filter($tag, $action) -- ฟังก์ชั่นนี้จะเหมือนเป็นการ filer ข้อมูล แก้ไขค่าของตัวแปร ก่อนที่จะอัพเดทฐานข้อมูล หรือแสดงผลออกทางหน้าเว็บ
ที่นี้เรา มาดูไฟล์ hello-world.php กัน ในไฟล์นี้เราจะต้องมีข้อมูลของ plugin ตัวที่เราสร้างอยู่ด้วย โดยจะเรียกส่วนนี้ว่า information header ฟอร์แมตก็มีประมาณนี้
<?php /* Plugin Name: Name Of The Plugin Plugin URI: http://URI_Of_Page_Describing_Plugin_and_Updates Description: A brief description of the Plugin. Version: The Plugin's Version Number, e.g.: 1.0 Author: Name Of The Plugin Author Author URI: http://URI_Of_The_Plugin_Author License: A "Slug" license name e.g. GPL2 */ ?>
ข้อมูลพวกนี้เป็นข้อมูลขั้นต่ำที่ WordPress ต้องการนะครับ เราก็ควรใส่ให้ครบ แล้วก็จะได้ประมาณนี้
<?php /* Plugin Name: Hello-World Plugin URI: http://www.wordpress-66.com/ Description: A simple hello world WordPress plugin Version: 1.0 Author: WP-66 Author URI: http://www.wordpress-66.com License: GPL */ ?>
ทีนี้เราก็ลองเปิดหน้าเว็บ WordPress ของเรา แล้วเข้าไปในส่วน Admin และเลือกส่วน Plugins ถ้าทำตามขั้นตอนมาจะเห็น plugin ของเราขึ้นตามรูปข้างล่างนี้
กลับมาที่โค้ด hello-world.php กันต่อ เราก็ใส่เพิ่มโค้ดส่วนนี้ลงไป
add_action('init','hello_world'); function hello_world() { echo "Hello World"; }
โค้ดข้างบนนี้จะบอกให้ WordPress เรียกฟังก์ชั่น hello_world ทุกครั้งที่ initialize นั่นก็คือทุกครั้งที่มีการโหลดหน้าเพจ หรือพูดง่ายๆ ก็คือให้แสดงคำว่า Hello World ไว้ทุกหน้านั่นเอง หลังจากเขียนไฟล์นี้เสร็จ ให้ไป Activate ซะ แล้วก็ลองเข้าหน้าเว็บดู ควรจะได้ผลตามรูปข้างล่างนี้
เป็นอันเสร็จสิ้น plugin ตัวแรก เย้~ 🙂