หากคุณถามโปรแกรมเมอร์แบ็คเอนด์ที่คุ้นเคยกับการใช้เฟรมเวิร์กกับภาษาต่างๆ เช่น PHP, Java, Ruby หรือ Python ในการใช้ WordPress เพื่อสร้างเว็บไซต์ พวกเขาจะลงเอยด้วยการตำหนิอย่างหลีกเลี่ยงไม่ได้ และส่วนใหญ่คงอยากจะหลีกเลี่ยงการใช้ CMS ใดๆ ความจริงก็คือ WordPress มักถูกมองว่าเป็นโปรแกรมที่ยุ่งยากสำหรับโปรแกรมเมอร์ที่จริงจัง เนื่องจากไม่ได้ถูกสร้างมาเพื่อให้ปฏิบัติตามกฎการเขียนโปรแกรมที่ถูกต้อง แต่เพื่อให้ผู้ที่ไม่ได้เป็นโปรแกรมเมอร์สามารถสร้างบล็อกได้อย่างง่ายดาย จากนั้น WordPress จึงพัฒนาเป็นสิ่งที่มีวัตถุประสงค์ที่กว้างขึ้นเมื่อมีการพัฒนาปลั๊กอินจำนวนมากสำหรับ WordPress ซึ่งตอนนี้ทำให้สามารถเปลี่ยนเว็บไซต์ WordPress ให้กลายเป็นอะไรก็ได้ ปลั๊กอินที่บางครั้งมีข้อบกพร่องเหล่านี้อาจมีความยุ่งยากของตัวเองจนกลายเป็นระบบที่ซับซ้อน
WordPress คืออะไร?
เว็บไซต์ทั้งหมดสร้างขึ้นด้วยเทคโนโลยีเดียวกันกับที่ทำงานในเบราว์เซอร์ซึ่ง ได้แก่ HTML และ โครง CSS แบบเริ่มต้นที่จะกำหนดสไตล์ของหน้าเว็บ เว็บไซต์หลายแห่งเป็นแบบสถิติและสร้างโดยตรงกับเว็บไซต์อื่น ๆ ซึ่งเป็นแบบไดนามิกและอนุญาตให้ผู้ใช้ปรับปรุงเนื้อหาของพวกเขาผ่านแผงผู้ดูแลระบบเเละเนื้อหาที่ถูกบันทึกไว้ในฐานข้อมูล
WordPress นำเสนอแผงผู้ดูแลระบบซึ่งเป็นระบบจัดการเนื้อหา (CMS) โอเพ่นซอร์สฟรีที่ทำงานบนภาษาการเขียนโปรแกรม PHP และฐานข้อมูล MySQL เทคโนโลยีที่ใช้นั้นง่ายและมีอยู่ทั่วไปในเว็บเซิร์ฟเวอร์ส่วนใหญ่ซึ่งทำให้ติดตั้งได้ง่ายทุกที่บนอินเทอร์เน็ต
หากจะอธิบายตามคำพูดของ Churchill แล้ว “WordPress เป็นระบบที่แย่ที่สุด… ยกเว้นระบบอื่นๆ ทั้งหมด” และมีเหตุผลว่าทำไม WordPress จึงครองส่วนแบ่งตลาดเว็บไซต์ทั้งหมด 30% ในปัจจุบัน และมีรายงานความนิยมสูงของเว็บไซต์การจัดการหรือระบบบล็อกในการใช้บนเว็บในปัจจุบันนี้ โดยมีการซัพพอร์ตมากกว่า 60 ล้านเว็บไซต์

กรณีการใช้งานสำหรับ WordPress
ที่ Outsourcify เรามักคิดว่ามีบางกรณีที่การใช้ WordPress เป็นสิ่งที่สมเหตุสมผล และบางครั้งก็ดีกว่าถ้าใช้โซลูชั่นทางเลือกอื่น ซึ่งส่วนใหญ่มักจะเป็นเว็บเเอปพลิเคชั่นเเบบกำหนดเอง WordPress เป็นตัวเลือกที่ดีเนื่องจากช่วยลดความซับซ้อนในการพัฒนาเว็บไซต์และทำให้ผู้ใช้ปลายทางสามารถอัปเดตได้ง่ายขึ้น เหตุผลหลักในการใช้ WordPress ก็คือแผงควบคุมสำหรับผู้ดูแลระบบที่ใช้งานง่าย ซึ่งช่วยให้ผู้ใช้สามารถเพิ่มและแก้ไขเนื้อหาได้อย่างง่ายดาย โดยเฉพาะอย่างยิ่งคลังสื่อที่ออกแบบมาอย่างดี
เกือบทุกเว็บไซต์หรือแนวคิดเว็บแอปพลิเคชั่นสามารถสร้างโดยใช้ WordPress ในฐานะ CMS (Content Management System) ได้ แต่ขณะนี้มีความต้องการบางอย่างที่จะต้องสร้างปลั๊กอินขนาดใหญ่หรือแฮ็กปลั๊กอินที่มีอยู่แล้ว จะต้องหลีกเลี่ยง WordPress
WordPress เหมาะสำหรับเว็บไซต์ขององค์กรที่แสดงหน้า บทความ และเนื้อหาทุกประเภทที่สามารถแสดงได้ผ่านเทมเพลตหน้าเดียวกัน ด้วยความช่วยเหลือของ WooCommerce ร้านค้าออนไลน์สามารถสร้างได้อย่างมีประสิทธิภาพด้วย WordPress หากยังคงใช้ฟีเจอร์ปกติของอีคอมเมิร์ซแบบคลาสสิก และยังประหยัดกว่ามากรวมถึงมีโซลูชันที่กำหนดเอง
การพัฒนา MVC ด้วย WordPress
ไม่ว่าจะเลือก WordPress ในกรณีใดก็ตาม มีวิธีต่างๆ มากมายในการปรับปรุง WordPress ซึ่งที่ Outsourcify เราถือว่าจำเป็น วิธีแรกคือการนำรูปแบบสถาปัตยกรรม Model–view–controller (MVC) มาใช้กับ WordPress โดยแยกคอนโทรลเลอร์ (สคริปต์ PHP) ออกจากมุมมอง (เทมเพลต) และเพิ่มคุณลักษณะต่างๆ เพื่อให้สามารถอัปเดตโมเดลข้อมูลได้ ง่ายพอๆ กับการติดตั้งปลั๊กอิน 2 ตัว ได้แก่ Timber และ ACF
Timber จัดเตรียม Twig
WordPress ยังคงไม่มีระบบเทมเพลตใดๆ เลยตลอดหลายปีที่ผ่านมา (สร้างขึ้นในปี 2003!) นั่นหมายความว่าโค้ด PHP เชื่อมโยงกับ HTML ซึ่งถือว่าการเขียนโปรแกรมไม่ดีด้วยเหตุผลบางประการ ในฐานะผู้สร้างธีมแบบกำหนดเองของ WordPress สิ่งที่เรามุ่งเน้นที่ Outsourcify คือการแก้ไขปัญหานี้ และปรากฏว่ามีปลั๊กอินสำหรับเพิ่มเทมเพลตให้กับ WordPress นั่นคือ Timber ความจริงที่ว่า Timber แนะนำเครื่องมือสร้างเทมเพลต Twig ทำให้เราพอใจได้เท่านั้น เนื่องจากได้รับการดูแลโดยทีมงานเบื้องหลัง Symfony ซึ่งเป็นเฟรมเวิร์ก PHP ที่เราเลือกใช้เมื่อเราเขียนโค้ดเว็บเเอปพลิเคชั่นแบบกำหนดเอง
คำแนะนำการพัฒนาธีม WordPress อย่างเป็นทางการและธีมที่มาพร้อม WordPress (Twenty Ten, Twenty Eleven, Twenty Twelve) เสนอให้รับและแสดงข้อมูลในไฟล์เดียวกัน ไม่สนับสนุนการแยกฟังก์ชันหลักของไซต์เป็นปลั๊กอิน ดังนั้น สิ่งที่คุณมักจะทำคือการสร้างลูปเข้ารหัสและไฟล์ functions.php ขนาดยักษ์ Timber นำหลักการพัฒนาบางส่วนจากรูปแบบสถาปัตยกรรม Model–view–controller (MVC) มาสู่ WordPress โดยแยกคอนโทรลเลอร์ (สคริปต์ PHP) ออกจากมุมมอง (เทมเพลต Twig) ง่ายๆ เพียงติดตั้งปลั๊กอินเพื่อให้ธีมที่คุณกำหนดเองดูยุ่งเหยิงน้อยลง
CMS ที่แท้จริงพร้อมโพสต์ที่กำหนดเองและ ACF (Advanced Custom Fields)
“Model” ใน MVC ย่อมาจาก data ในฐานข้อมูล โดยข้อมูลจะถูกจัดเก็บและเชื่อมต่อกัน WordPress นำเสนอรายการบล็อกและหน้าต่างๆ ตามค่าเริ่มต้น เนื่องจากเดิมทีเป็นระบบบล็อก ในการเพิ่มประเภทข้อมูลใหม่ใน WordPress เราใช้โพสต์แบบกำหนดเอง ซึ่งเรียกว่าเอนทิตีหรืออ็อบเจกต์ในระบบการเขียนโปรแกรมอื่นๆ โพสต์แบบกำหนดเองไม่เพียงพอ เนื่องจากเป็นสำเนาของรายการบล็อกโดยพื้นฐานแล้ว โดยมีฟิลด์พื้นฐานเดียวกัน ได้แก่ ชื่อเรื่อง เนื้อหา ผู้เขียน เป็นต้น
ปลั๊กอิน ACF อนุญาตให้เพิ่มฟิลด์ประเภทอื่นๆ ลงในเอนทิตีของเรา เช่น ข้อความ รูปภาพ URL ลิงก์ หรือข้อมูลใดๆ ที่จำเป็นในการกำหนดเอนทิตี ปลั๊กอิน ACF เวอร์ชันฟรีเพียงพอสำหรับกรณีส่วนใหญ่ แต่ควรทราบว่าเวอร์ชัน PRO มีประเภทข้อมูลเพิ่มเติมที่มีประโยชน์มากสองสามประเภท เช่น “รีพีทเตอร์” “แกลเลอรี” หรือ “เนื้อหาที่ยืดหยุ่น” ซึ่งจำเป็น
บทความนี้ไม่มีจุดประสงค์ที่จะอธิบายรายละเอียดวิธีใช้ปลั๊กอินทั้งสองนี้ คุณสามารถค้นหาบทช่วยสอนเกี่ยวกับวิธีใช้ปลั๊กอินเหล่านี้ได้อย่างง่ายดาย โดยวิธีที่ดีที่สุดคือเริ่มต้นด้วยเอกสารประกอบ:
การใช้หลักการบางประการของรูปแบบการออกแบบ MVC เราไม่ได้หมายความว่า WordPress จะกลายเป็นกรอบงาน MVC เต็มรูปแบบในตอนนี้ แต่กำลังใกล้จะเป็นเช่นนั้นแล้ว นักพัฒนาธีม WP สามารถมุ่งเน้นไปที่แต่ละประเด็นทีละประเด็นได้แล้ว ไม่ว่าจะเป็นการกำหนดข้อมูลในโมเดล การเรียกค้นและประมวลผลข้อมูลในตัวควบคุม และสุดท้ายคือการแสดงข้อมูลในเทมเพลต การแยกประเด็นที่แตกต่างกัน 3 ประเด็นนี้ออกจากกันทำให้การพัฒนารวดเร็วขึ้น ปรับเปลี่ยนได้ บำรุงรักษาได้ และที่สำคัญที่สุดคือสนุกมากขึ้น