สร้าง WordPress Plugin ด้วย Claude ได้ไหม? วิธีเริ่มและตรวจโค้ดก่อนใช้

Claude ช่วยร่างโค้ด WordPress Plugin จากคำอธิบายได้ ตั้งแต่ปลั๊กอินสั้น ๆ ที่เพิ่ม Shortcode ไปจนถึงฟีเจอร์ที่มีหน้าตั้งค่า แต่ควรเริ่มจากขอบเขตเล็ก ๆ และระบุว่าใช้กับ WordPress และ PHP เวอร์ชันใด ผู้ใช้ ComSiam ควรทดลองปลั๊กอินในเว็บไซต์ทดสอบก่อนติดตั้งบนเว็บไซต์จริง

คู่มือนักพัฒนา WordPress ระบุว่าปลั๊กอินอย่างง่ายเริ่มจากไฟล์ PHP ที่มี Plugin Header และแนะนำให้จัดไฟล์ของปลั๊กอินไว้ในโฟลเดอร์แยกจาก WordPress Core การเพิ่มฟังก์ชันผ่านปลั๊กอินช่วยหลีกเลี่ยงการแก้ไฟล์แกนหลักของ WordPress

ก่อนสั่ง Claude สร้างปลั๊กอิน ควรกำหนดอะไร

① ปลั๊กอินมีหน้าที่อะไร — เช่น เพิ่ม Shortcode หรือแสดงกล่องข้อความ
② ใครเป็นผู้ใช้ฟีเจอร์ — ผู้ดูแลเว็บไซต์ บรรณาธิการ หรือผู้เข้าชม
③ ต้องมีหน้าตั้งค่าหรือไม่ — และต้องเก็บข้อมูลใดบ้าง
④ จะใช้กับ WordPress และ PHP เวอร์ชันใด — ระบุเวอร์ชันที่เว็บไซต์ใช้อยู่
⑤ ต้องเชื่อมต่อระบบภายนอกหรือไม่ — เช่น API หรือบริการอื่น
⑥ ต้องการไฟล์ใดบ้าง — เช่น ไฟล์หลัก PHP, CSS และ JavaScript
⑦ มีข้อจำกัดด้านความปลอดภัยหรือไม่ — เช่น จำกัดสิทธิ์ผู้ใช้และไม่เก็บข้อมูลส่วนบุคคล

หากยังไม่แน่ใจเรื่องโครงสร้าง ให้ขอ Claude อธิบายแผนไฟล์และการทำงานก่อนสร้างโค้ด

Prompt ตัวอย่างสำหรับเริ่มสร้าง Plugin

ช่วยสร้าง WordPress Plugin ขนาดเล็กสำหรับเพิ่ม Shortcode
ที่แสดงข้อความต้อนรับบนหน้าเว็บ

เป้าหมาย:
- เรียกใช้ Shortcode [simple_greeting]
- แสดงข้อความ “สวัสดี ยินดีต้อนรับ”
- ใช้ PHP และ WordPress API ตามแนวทาง WordPress
- ยังไม่ต้องมีหน้าตั้งค่าใน Dashboard
- ไม่แก้ไขไฟล์ WordPress Core

ขอให้ส่ง:
1. โครงสร้างโฟลเดอร์และชื่อไฟล์
2. โค้ดแต่ละไฟล์
3. วิธีติดตั้งและทดสอบในเว็บไซต์ทดสอบ
4. อธิบาย Hook และ Shortcode ที่ใช้
5. ระบุข้อสมมติและจุดที่ควรตรวจสอบก่อนติดตั้ง

Prompt นี้เริ่มจากฟีเจอร์เดียว ทำให้เข้าใจและตรวจโค้ดได้ง่ายกว่าการขอให้สร้างปลั๊กอินขนาดใหญ่ทั้งหมดในครั้งเดียว

ตัวอย่างโครงสร้าง Plugin อย่างง่าย

ปลั๊กอินเริ่มต้นอาจมีไฟล์หลักเพียงไฟล์เดียว โดยไฟล์ PHP ต้องมี Plugin Header เพื่อให้ WordPress รู้จักปลั๊กอิน

<?php
/**
 * Plugin Name: Simple Greeting
 * Description: Adds a simple greeting shortcode.
 * Version: 1.0.0
 */

if ( ! defined( 'ABSPATH' ) ) {
    exit;
}

function myplugin_simple_greeting_shortcode() {
    return '<p>สวัสดี ยินดีต้อนรับ</p>';
}

add_shortcode(
    'simple_greeting',
    'myplugin_simple_greeting_shortcode'
);

หลังติดตั้งและเปิดใช้งานปลั๊กอิน สามารถทดลองเรียก Shortcode ด้วย [simple_greeting] ในเนื้อหาที่รองรับ Shortcode ตัวอย่างนี้แสดงข้อความคงที่ จึงไม่มีข้อมูลจากผู้ใช้เข้ามาเกี่ยวข้อง หากเพิ่มแบบฟอร์มหรือช่องตั้งค่า ต้องออกแบบการตรวจสอบข้อมูลและสิทธิ์เพิ่มด้วย

วิธีตรวจโค้ดก่อนติดตั้ง

① ตรวจ Plugin Header — อย่างน้อยต้องมีชื่อปลั๊กอินในไฟล์หลัก
② ตรวจชื่อ Hook และ Shortcode — ต้องตรงกับวิธีใช้งานที่ Claude อธิบาย
③ อ่านทุกไฟล์ก่อนติดตั้ง — ตรวจว่ามีโค้ดที่ลบหรือแก้ข้อมูลโดยไม่ตั้งใจหรือไม่
④ ใช้เว็บไซต์ทดสอบหรือ Staging — อย่าทดลองเวอร์ชันแรกบนเว็บไซต์ที่มีผู้เข้าชมจริง
⑤ ทดสอบเปิดและปิดปลั๊กอิน — ดูว่าหน้าเว็บและ Dashboard ยังทำงานปกติ
⑥ ตรวจ Error Log และผลลัพธ์ — แก้ปัญหาก่อนย้ายไปใช้งานจริง
⑦ สำรองข้อมูลก่อนติดตั้งบนเว็บไซต์จริง — โดยเฉพาะเมื่อปลั๊กอินเปลี่ยนฐานข้อมูลหรือการตั้งค่า

จุดความปลอดภัยที่ควรระบุให้ Claude

หากปลั๊กอินรับข้อมูลจากผู้ใช้หรือมีหน้าตั้งค่า ให้ขอให้ Claude อธิบายและตรวจเรื่องต่อไปนี้ด้วย:

  • Sanitize และ Validate ข้อมูลนำเข้า ให้เหมาะกับชนิดข้อมูล
  • Escape ข้อมูลก่อนแสดงผล โดยเลือกฟังก์ชันตามบริบท เช่น HTML หรือ URL
  • ตรวจสิทธิ์ผู้ใช้ ก่อนอนุญาตให้เปลี่ยนการตั้งค่าหรือทำรายการสำคัญ
  • ใช้ Nonce กับคำขอที่เกี่ยวข้อง เพื่อช่วยป้องกันคำขอปลอมข้ามเว็บไซต์
  • ไม่เก็บรหัสผ่านหรือ API Key แบบไม่ปลอดภัย
  • จำกัดขอบเขตการเปลี่ยนแปลง ไม่แตะไฟล์ WordPress Core หรือส่วนที่ไม่เกี่ยวข้อง

เอกสาร WordPress ระบุว่า Nonce ช่วยป้องกันคำขอบางประเภท แต่ไม่ใช่ระบบยืนยันตัวตนหรือการกำหนดสิทธิ์ จึงควรตรวจสิทธิ์ด้วยกลไกอย่าง current_user_can() ด้วย ส่วนข้อมูลที่แสดงผลควร Escape ให้เหมาะกับบริบท

Prompt สำหรับให้ Claude รีวิว Plugin

ช่วยรีวิว WordPress Plugin นี้ก่อนนำไปทดสอบ

บริบท:
- WordPress เวอร์ชัน: [ระบุ]
- PHP เวอร์ชัน: [ระบุ]
- หน้าที่ของปลั๊กอิน: [อธิบาย]

ช่วยตรวจ:
- โครงสร้าง Plugin และ Plugin Header
- การใช้ Hook และ Shortcode
- การตรวจสิทธิ์และ Nonce ในจุดที่เกี่ยวข้อง
- การ Sanitize ข้อมูลนำเข้าและ Escape ผลลัพธ์
- จุดที่อาจทำให้เกิด Error หรือกระทบเว็บไซต์

กรุณา:
- อธิบายข้อค้นพบก่อนเสนอการแก้
- แยกข้อผิดพลาดที่เห็นชัดจากข้อสมมติ
- อย่าเขียนทับหรือเปลี่ยนโค้ดส่วนอื่นโดยไม่จำเป็น

โค้ด:
[วางโค้ดที่ตรวจแล้วว่าไม่มีข้อมูลลับ]

คำถามที่พบบ่อย

ให้ Claude สร้างปลั๊กอินทั้งระบบในครั้งเดียวได้ไหม

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

ควรติดตั้งปลั๊กอินที่ Claude สร้างบนเว็บจริงทันทีหรือไม่

ไม่ควร ควรอ่านโค้ดและทดลองในเว็บไซต์ทดสอบก่อน เพราะข้อผิดพลาดใน Plugin อาจกระทบหน้าเว็บ Dashboard หรือข้อมูลในฐานข้อมูล

Claude รับรองว่าปลั๊กอินปลอดภัยได้ไหม

Claude ช่วยชี้จุดที่ควรตรวจได้ แต่ไม่ใช่การรับรองความปลอดภัย ควรตรวจโค้ด ทดสอบ และพิจารณาตามความเสี่ยงของฟีเจอร์ โดยเฉพาะปลั๊กอินที่รับข้อมูลหรือเปลี่ยนแปลงฐานข้อมูล

สรุป

Claude ช่วยเริ่มสร้าง WordPress Plugin ได้โดยระบุฟีเจอร์ เวอร์ชันที่ใช้ โครงสร้างไฟล์ และข้อจำกัดให้ชัด เริ่มจากปลั๊กอินขนาดเล็ก อ่านโค้ดและทดสอบในเว็บไซต์ทดสอบก่อน หากมีการรับข้อมูลหรือเปลี่ยนการตั้งค่า ต้องตรวจเรื่องสิทธิ์ การตรวจข้อมูล และการ Escape อย่างรอบคอบ ผู้อ่าน ComSiam สามารถใช้ Prompt ในบทความนี้เป็นจุดเริ่มต้น แล้วเพิ่มฟีเจอร์ทีละส่วน