เมื่อวานผมมี Plugin WordPress พร้อมขาย
วันนี้ผมจะเล่าให้ฟังว่าทำยังไง
ไม่ใช่ tutorial สอน code แต่เป็นเรื่องจริงที่เกิดขึ้น รวมถึง bug ที่เจอ การแก้ปัญหาแบบ real-time และ mindset ที่ทำให้มันเกิดขึ้นได้จริง
ไอเดียเริ่มจากปัญหาของตัวเอง
ผมมีบทความบนเว็บลูกค้าเป็น 100+ บทความ
SEO Title กับ Meta Description ส่วนใหญ่ยังว่างอยู่ หรือเขียนไว้แบบขอไปที
จะนั่งเขียนเองทีละอัน? ไม่ไหว
จะจ้างคน? แพง และได้คุณภาพไม่สม่ำเสมอ
จะใช้ AI? ต้อง copy ทีละอัน วางใน ChatGPT แล้ว copy กลับมา ก็เหนื่อย
ผมต้องการ Plugin ที่:
- เลือกบทความได้ทีเดียว 1,000 บทความ
- กด Generate แล้วไปทำอย่างอื่นได้
- กลับมา Review แล้ว Save เข้า Rank Math ได้เลย
หาใน WordPress Plugin Directory ไม่มีที่ทำแบบนี้ได้ดี
งั้นสร้างเองเลย
เครื่องมือที่ใช้: Claude Code + Gemini API
ผมเลือกใช้:
- Claude Code (CLI) – AI ที่เขียน code ให้ และแก้ bug ให้
- Gemini 3 Flash – Model สำหรับ generate SEO content
ทำไมเลือก Gemini Flash?
เพราะถูกที่สุดสำหรับงาน bulk generation แบบนี้
$0.50 ต่อ 1 ล้าน input tokens
ต้นทุนต่อบทความไม่ถึง 1 สตางค์
วันแรก: จาก 0 ถึง Working Prototype
ผมบอก Claude ว่าต้องการอะไร:
“สร้าง WordPress Plugin สำหรับ bulk generate SEO title และ meta description ด้วย Gemini API รองรับ Rank Math, มี preview ก่อน save, รองรับ 1000+ URLs โดยไม่ทำให้ browser freeze”
ภายใน 2-3 ชั่วโมง ผมได้:
- Admin page สำหรับ config API key
- Bulk editor page เลือก posts
- AJAX-based generation
- Preview modal ก่อน save
แต่มันยังไม่ work
Bug #1: Settings Page ว่างเปล่า
เปิดหน้า Settings ไม่มี form fields เลย มีแค่ sidebar
ปัญหา: WordPress Settings API ต้อง register fields ใน admin_init hook
แต่ code instantiate class ตอน render page ซึ่งมันสายไปแล้ว
วิธีแก้: ย้าย instantiation ไปไว้ใน constructor
public function __construct() {
// Initialize settings page early so admin_init hook works
$this->settings_page = new GSU_Settings_Page();
add_action( 'admin_menu', array( $this, 'register_menus' ) );
}
บทเรียน: WordPress hook timing เป็นเรื่องสำคัญมาก ถ้าไม่เข้าใจว่า hook ไหนทำงานตอนไหน จะ debug ยากมาก
Bug #2: Test API ต้อง Save ก่อน
User กรอก API key แล้วกด “Test Connection” แต่มัน fail
เพราะ code ไปดึง key จาก database ซึ่งยังไม่ได้ save
วิธีแก้: ส่ง API key จาก input field ไปพร้อม AJAX request
$.ajax({
data: {
action: 'gsu_test_api',
api_key: $('#gsu_api_key').val()
}
});
บทเรียน: คิดจากมุม User เสมอ User อยากทดสอบก่อน save ไม่ใช่ save แล้วค่อยรู้ว่า key ผิด
Bug #3: Output ถูกตัดกลางประโยค
Generate แล้วได้:
- Title: 29 ตัวอักษร (ควร 50-60)
- Description: 23 ตัวอักษร (ควร 120-155)
ดูแล้วเหมือน AI เขียนไม่จบ
ปัญหา: maxOutputTokens: 300 น้อยเกินไปสำหรับ Thai text
ภาษาไทยใช้ tokens มากกว่าภาษาอังกฤษต่อตัวอักษร
300 tokens อาจได้แค่ 50-100 ตัวอักษรไทย
วิธีแก้: เพิ่มเป็น 1024 tokens
'generationConfig' => array(
'maxOutputTokens' => 1024,
),
บทเรียน: ภาษาไทยกับ AI มี quirks ที่ต้องทดสอบจริง อย่า assume จาก English
Bug #4: AI Copy ชื่อเดิมมาใช้
บอกให้สร้าง “SEO Title ใหม่” แต่ AI copy ชื่อเดิมมาแทบทั้งดุ้น
ปัญหา: Prompt ไม่ชัดพอ
วิธีแก้: เขียน Prompt ให้ explicit มากขึ้น
⚠️ ข้อห้ามสำคัญ:
- ห้าม copy ชื่อเดิมทั้งหมดมาใช้ - ต้องเขียนใหม่
- ห้ามสั้นกว่า 50 ตัวอักษร
- ห้ามยาวเกิน 60 ตัวอักษร
บทเรียน: AI ทำตามที่บอก ไม่ใช่ทำตามที่คิด ถ้าไม่บอกชัด มันจะเลือกทางที่ง่ายที่สุด
สิ่งที่ทำให้ Project นี้สำเร็จ
1. เริ่มจากปัญหาจริง ไม่ใช่ไอเดียลอย
ผมไม่ได้คิดว่า “อยากสร้าง Plugin” แล้วหาว่าจะทำอะไร
ผมมีปัญหา → หาวิธีแก้ → ไม่มีที่ถูกใจ → สร้างเอง
2. ใช้ AI เป็น Partner ไม่ใช่เป็น Magic
AI ไม่ได้ทำให้ทุกอย่างเสร็จในครั้งเดียว
มันช่วย draft code → ผมทดสอบ → เจอ bug → บอก AI → AI แก้ → วนซ้ำ
Process นี้เกิดขึ้นหลายสิบรอบ
3. ทดสอบจริงตั้งแต่เริ่ม
ไม่ใช่ code เสร็จแล้วค่อยทดสอบ
ทุกฟีเจอร์ที่ใส่เข้าไป ผมเอาไปใช้บนเว็บจริงทันที
เจอ bug เร็ว แก้เร็ว
4. Version Control ทุก Change
ทุกครั้งที่แก้ bug ผมให้ update version number
v1.0.0 → v1.1.0 → v1.2.0
ทำให้รู้ว่าตอน deploy version ไหนมีอะไรบ้าง
ผลลัพธ์สุดท้าย: Gemini SEO Ultimate v1.2.0
ฟีเจอร์ที่ได้:
- Bulk select 1000+ posts
- Background processing (ปิด browser ได้)
- Rate limit handling อัตโนมัติ
- Preview & Edit ก่อน save
- รองรับ Rank Math, Yoast, AIOSEO
- Custom Prompt templates
- รองรับ 5 ภาษา (TH, EN, ZH, JA, KO)
ต้นทุน: เวลา 1 วัน + API cost ไม่กี่บาท
มูลค่า: Plugin ที่ขายได้ + แก้ปัญหาตัวเองได้
สำหรับคนที่อยากเริ่มต้น
1. อย่ารอจนพร้อม
ผมไม่รู้ PHP ดีขนาดเขียน Plugin เองได้ แต่ AI ช่วยได้
2. เริ่มจากปัญหาเล็กๆ
ไม่ต้องสร้าง “WordPress ตัวต่อไป”
เริ่มจากอะไรที่แก้ปัญหาของตัวเอง
3. ทำให้เสร็จก่อนทำให้ดี
Version แรกไม่ต้องสมบูรณ์แบบ ขอให้ work ก่อน
4. Bug คือครู
ทุก bug ที่เจอสอนเราเรื่องใหม่
ไม่มี bug = ไม่ได้เรียนรู้
ถ้าคุณมีปัญหาที่ยังไม่มีใครแก้ให้
บางทีคุณอาจเป็นคนที่ควรสร้างมันขึ้นมาเอง
AI พร้อมช่วยแล้ว
คุณพร้อมหรือยัง?

