[บันทึกการทำเว็บ] การทำ WordPress Plugin ครั้งแรก ตอนที่ 1

ช่วงนี้กำลังง่วนอยู่กับการทำ WordPress Plugin อยู่เลย คือเอา Plugin ตัวเก่า Tweetily ที่เค้าไม่ทำต่อมานานแล้ว (ประมาณ 3 ปีเลยล่ะ) เอามาทำเอง แล้วเอามาใช้กับเว็บตัวเองด้วย ทีนี้ก็เลยเห็นว่าหลายอย่างในโค้ดของเค้าควรจะปรับปรุง ก็เลยขึ้นโปรเจ็คใหม่ Tweetapisek

ทีนี้ มันมีเรื่องโครงสร้างของ Plugin ที่มันยังดูแบบ… ไม่โอเคอ่ะ ก็เลยลองรื้อโครงสร้างใหม่ดู เอา Plugin ที่เค้าเขียนแบบโครงสร้างดีๆ เอามาเป็นต้นแบบ ก็เลยเลือกเอา Google Tag Manager for WordPress มาเป็นต้นแบบ

ทีนี้มันก็ไม่ง่ายแฮะ งงหลายเรื่องเลย อย่างตอนนี้เรื่องฟังก์ชั่น add_action/admin_menu มันต้องอยู่ตรงไหน ก็ยังไม่รู้ ก็เลยต้องทดลองกันเยอะเลย

มันแบบ… เมื่อคืนนี้เมนูก็ขึ้นแล้วนี่หว่า แต่ไหงเมนูหายไปไหน.. แก้ไปแก้มาเป็นชั่วโมงเลย

ตอนนี้จบก่อนดีกว่า แปะ reference เอาไว้ข้างล่างนี้นะครับ เผื่อใครอยากจะเอาไปทำบ้าง

https://codex.wordpress.org/Creating_Options_Pages

 

Update บันทึกทำเว็บ 1:

เมื่อกี้แก้ปัญหาได้แล้ว ปัญหาเกิดจากผมได้เอาฟังก์ชั่นต่างๆ พวก add_action/admin_menu ฯลฯ ไปใส่ไว้ในอีกไฟล์นึง แล้วให้ plugin initiation เรียก require_once อีกทีเพื่อเอามาใช้ ทีนี้ พอเราเอาฟังก์ชั่นไป register กับ wordpress …. คิดว่านะ… คิดว่า wrodpress ก็เรียกใช้ require_once น่ะแหละ แต่มันหาไฟล์ไม่เจอ เพราะมันเรียกใช้จากอีก path นึงซึ่งไม่ใช่ path ของ plugin ที่กำลังทำอยู่

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

Continue Reading

เมื่อ Ubuntu เข้า Emergency mode

วันนี้เปิดคอมมาทำงาน อยู่ดีๆก็เข้าไม่ได้ Ubuntu ก็เข้า Emergency mode ซะงั้น

รูปหน้าจอที่ Ubuntu เข้า Emergency mode credit: http://askubuntu.com/questions/646414/welcome-to-emergency-mode-think-it-is-a-fsck-problem/

ตอนแรกก็ทำตามขั้นตอนในหน้าจอนะ เปิด log แล้ว restart ใหม่ ก็ไม่หาย เลยต้องหาวิธีแก้ซะแล้วล่ะ

ก็ไปเจอใน Ask Ubuntu เค้าก็โดนแบบนี้เหมือนกัน (เข้าไปที่นี่เลย “Welcome to emergency mode!” Think it is a fsck problem )

Best Answer ในนั้น ดูๆ ไป ก็ยากๆ เนอะ เลื่อนลงมาอีกนิดนึง ก็มีคนที่ลง Dual Boot Windows 10 + Ubuntu เหมือนกันกับผมเลย เป็นปัญหาที่ Partition NTFS ครับ ก็เลยลองใช้ คำสั่ง sudo ntfsfix /dev/sda3 ตามที่เค้าบอกมา แล้วก็หายครับ โชคดีที่เป็นปัญหาที่ Partition เดียวกัน ^^

Continue Reading