ทำเว็บด้วย WordPress ตอน เมื่อไหร่ที่ต้องใช้ Custom Post Type และ Custom Field

อรุณสวัสดิ์ยามเช้าครับ ครั้งก่อนนั้นผมเคยเขียนแนะนำเกี่ยวกับ ทำเว็บด้วย WordPress แบบเซียนด้วย Custom Post Type และเมื่อไม่นานมานี้ผมก็ได้รับคำถามจากน้องคนหนึ่ง ที่มาถามว่า เมื่อไหร่ที่เราควรจะใช้ Custom Post Type และ Custom Field ผมดีใจนะครับที่มีคนมาถาม เพราะผมชื่อว่าอย่างน้อยคนเหล่านั้นก็มีความกระตือรือร้นที่อยากจะเรียนรู้ และผมก็ยินดีที่จะตอบด้วยครับ

[thetext]ก่อนอื่นผมว่า เรามาทำความรู้จักกันมาขึ้นกับตัว Custom Post Type กันก่อนดีกว่า ว่ามันคืออะไร มีไว้ทำไม?[/thetext]

คือถ้าหากว่าเราเคยใช้ WordPress มาก่อน เมื่อเราจะเพิ่มบทความใหม่ลงในเว็บ เห็นปุ่ม New ไหมครับ? มันเพิ่มเนื้อหาได้กี่ประเภทครับ? ใช่แล้ว เบื้องต้นนั้นเราสามารถเพิ่มเนื้อหาใน WordPress ได้ 2 ประเภท คือจะเพิ่มแบบ Post หรือ แบบ Page ซึ่งทั้งสองตัวนี้แหล่ะครับ ก็คือ Post Type ของ WordPress

โดยที่ Post คือเนื้อหาที่ต้องมีการจัดหมวดหมู่ ส่วน Page คือหน้าคล้ายๆหน้า Static ทั่วไป

สำหรับเว็บทั่วๆไป เนื้อหาเพียงแค่ 2 ประเภทนี้ก็เพียงพอครับ

แต่ทีนี้ในกรณีที่ว่าเว็บเราเริ่มต้องการจัดเก็บข้อมูลที่หลากหลายขึ้น นั่งทำ Site Map ดูแล้ว ถ้ามานั่งจัดหมวดหมู่มันอาจจะดูเยอะเวอร์มาก ถ้าหากมานั่งเขียนเนื้อหาแบบ Post ทั่วไป นั่งเลื่อนหมวดหมู่กันลำบากแน่ๆ หรือถ้าจะเพิ่มเนื้อหาไปในเว็บแล้วมันก็จะไปกองกันอยู่เต็มในส่วนของ Post ในแง่ของ User Friendly มันย่อมไม่เหมาะ

และด้วยความที่ WordPress มีนโยบายคือ ทำอะไรต้องทำให้ง่ายเข้าไว้ เราจึงสามารถสร้าง Post Type ขึ้นมาได้เองครับ เช่น จากเดิมมันมีอยู่แค่ Post กับ Page ผมก็อยากจะสร้างประเภทเนื้อหาขึ้นมาใหม่ไว้จัดเก็บข้อมูลเฉพาะด้านในเว็บของผม อาทิ ผมจะเขียนเนื้อหารีวิวภาพยนตร์ ผมก็สร้าง Custom Post Type ชื่อว่า Movie ขึ้นมา พอผมจะเพิ่มเนื้อหาเกี่ยวกับการรีวิวภาพยนตร์ ผมก็ไป Add New ที่ส่วนของ Movie แทน  หรือถ้าอยากจะทำเว็บเก็บข้อมูลนักเรียน ผมก็สร้าง Custom Post Type ชื่อว่า Student ขึ้นมา และเมื่อจะเพิ่มข้อมูลนักเรียน ผมก็ไป Add New ที่ส่วนของ Student นั่นเองครับ พอจะมองภาพกันออกไหมครับ?

[thetext]Custom Post Type ดีอย่างไร[/thetext]

มันดีมากในแง่ของการแบ่งประเภทการจัดเก็บเนื้อหาได้เป็นสัดส่วน ทำให้คนใช้งานไม่งงด้วย เพราะมีการสร้างขึ้นมาเฉพาะเจาะจงอยู่แล้ว คนใช้งานเห็นแล้วก็สามารถเข้าใจหรือคาดเดาได้อย่างถูกต้องว่า ถ้าจะเพิ่มเนื้อหาประเภทนี้ ควรจะไป Add New ที่เมนูไหน

มาถึงตอนนี้ เข้าใจมากขึ้นหรือเปล่าเอ่ย? สรุปง่ายๆ ถ้าไม่อยากไปเขียนข้อมูลกองกันเผละที่ Post ทั่วไป ก็ให้แยกมันออกมา ด้วยการสร้าง Custom Post Type ขึ้นมาใหม่ แล้วมาเขียนลงในนี้แทน

[thetext]สร้างฟอร์มเก็บข้อมูลเพิ่มด้วย Custom Field[/thetext]

ต่อมาพระเอกของ WordPress อีกตัวที่ทำให้ WordPress ก้าวไปไกล และได้รับความนิยมอย่างมาก ก็คือความสามารถในการสร้างกล่องมารองรับการจัดเก็บข้อมูลประเภทต่างๆลงบนเว็บของเรานั่นเอง

โดยความสามารถเบื้องต้น เมื่อเราจะเพิ่มเนื้อหาลงในเว็บของเรา ระบบ WordPress จะมีช่องให้เรากรอกคร่าวๆก็จะมี Title, Content Editor, Excerpt, Categories, Tags, Featured Image อะไรประมาณนี้ และก็เช่นเดียวกันครับ ถ้าเว็บของเราต้องการจัดเก็บข้อมูลเพียงแค่นี้มันก็เพียงพอแล้ว

แต่ถ้าเว็บของเรามีข้อมูลที่อยากจัดเก็บมากกว่านี้หล่ะ? ทำไงดี?

ยกตัวอย่างเช่น ผมต้องการจะทำเว็บไว้จัดเก็บฐานข้อมูลนิสิตนักศึกษา โดยข้อมูลที่จะจัดเก็บ มีดังต่อไปนี้ คือ

  • ชื่อนักศึกษา
  • นามสกุลนักศึกษา
  • วันเดือนปีเกิด
  • ที่อยู่ตามทะเบียนบ้าน
  • ที่อยู่ปัจจุบัน
  • เบอร์โทรศัพท์
  • อีเมล
  • ชื่อบิดา
  • ชื่อมารดา
  • วันที่เข้าศึกษาในมหาวิทยาลัย
  • ชั้นปีการศึกษา
  • อาจารย์ที่ปรึกษา
  • เกรดเฉลี่ยสะสม

จริงๆถ้าไม่ได้ซีเรียสอะไรมาก ก็พิมพ์ทุกอย่างลงไปในตัว Content Editor ที่เอาไว้เขียนเนื้อหาเลยก็ได้ครับ แต่! มันไม่เหมาะครับ เพราะถ้าในภายหน้าเราต้องการเอาข้อมูลเหล่านี้มาทำ Report หรือมาใช้งาน การดึงข้อมูลมาแสดงแบบเฉพาะเจาะจง มันดึงยากเพราะเราไปเขียนรวมกันทั้งหมด ดังนั้น จะดีกว่าถ้าเราสร้างกล่องรับข้อมูลขึ้นมาเพิ่ม โดยแต่ละกล่องก็แยกเก็บข้อมูลแต่ละอันไปเลย อย่างด้านบน เราก็จะสร้าง Custom Field ขึ้นมาเพิ่มอีก 13 ฟิลด์ ตามที่ลิสต์มานั่นแหล่ะครับ

[thetext]ประโยชน์ของ Custom Field[/thetext]

ประโยชน์ของ Custom Field ก็คือทำให้เราสามารถแยกข้อมูลแต่ละอย่างที่ต้องการจัดเก็บในโพสต์เดียวกันได้เป็นระบบมากขึ้น คือแทนที่จะเขียนไว้ในกล่องเพิ่มเนื้อหาเพียงกล่องเดียว เราก็แยกไปเลยแต่ละอันครับ ทำให้เราสามารถจัดเก็บข้อมูลได้หลากหลายมากยิ่งขึ้น และสามารถนำมาต่อยอดได้มากยิ่งขึ้น เช่นในอนาคต ถ้าผมต้องการสร้าง Report ให้แสดงรายชื่อนักเรียนที่มีผลการเรียนเกรดเฉลี่ยต่ำกว่า 2.00 เพื่อจะได้เรียกมาพัฒนาความรู้ให้ทันเพื่อนได้ ผมก็แค่ทำการดึงรายละเอียดจากฐานข้อมูล โดยเช็คที่ฟิลด์เกรดเฉลี่ยสะสมว่า ถ้าฟิลด์นี้มีค่าน้อยกว่า 2.00 ก็ให้แสดงรายชื่อนักศึกษาคนนั้นออกมา เห็นไหมครับ มันทำให้เขียนคิวรี่ได้ง่ายขึ้นมาก

[skill4]หากอยากจะพัฒนาตัวเองเข้าไปอีกขั้นในแวดวงการทำเว็บไซต์ด้วย WordPress ผมแนะนำเป็นอย่างยิ่งครับว่า ควรทำความรู้จักเจ้าสองตัวนี้ ให้มากขึ้น และรู้จักแล้วก็ต้องนำมาใช้ด้วยครับ จากปัญหาที่เจอส่วนใหญ่ก็คือ คนที่อ่านไม่เคยนำไปใช้จริง ซึ่งผมว่าพลาดนะครับ การเรียนรู้ที่ดีต้องอ่านแล้วนำไปใช้ครับ อาจจะทำเว็บไว้ทดสอบขึ้นมาสักเว็บ สร้างโจทย์เอง แล้วลองทำดู การเป็นโปรแกรมเมอร์ ไม่ได้เก่งได้เพียงจากการอ่านเท่านั้น กระบวนการเรียนรู้ส่วนใหญ่ เกิดขึ้นตอนที่ได้ลงมือปฏิบัติครับ[/skill4]

WordPress เป็นระบบ OpenSource ที่มีไว้สร้างเว็บได้อย่างเยี่ยมยอดครับ มันมีความสามารถหลากหลายและยืดหยุ่นมากๆ อยู่ที่เราผู้ใช้งานว่าจะดึงศักยภาพของมันได้ออกมาได้มากแค่ไหน เว็บเกือบทุกเว็บบนโลกนี้แทบจะใช้ WordPress พัฒนาได้หมดครับ อยู่ที่จินตนาการและความสามารถของเราเอง สู้ๆกันต่อไปครับ แล้วเจอกันใหม่บทความหน้าครับ สวัสดีครับ

เราใช้คุกกี้เพื่อพัฒนาประสิทธิภาพ และประสบการณ์ที่ดีในการใช้เว็บไซต์ของคุณ คุณสามารถศึกษารายละเอียดได้ที่ นโยบายความเป็นส่วนตัว และสามารถจัดการความเป็นส่วนตัวเองได้ของคุณได้เองโดยคลิกที่ ตั้งค่า

Privacy Preferences

คุณสามารถเลือกการตั้งค่าคุกกี้โดยเปิด/ปิด คุกกี้ในแต่ละประเภทได้ตามความต้องการ ยกเว้น คุกกี้ที่จำเป็น

ยอมรับทั้งหมด
Manage Consent Preferences
  • คุกกี้ที่จำเป็น
    Always Active

    ประเภทของคุกกี้มีความจำเป็นสำหรับการทำงานของเว็บไซต์ เพื่อให้คุณสามารถใช้ได้อย่างเป็นปกติ และเข้าชมเว็บไซต์ คุณไม่สามารถปิดการทำงานของคุกกี้นี้ในระบบเว็บไซต์ของเราได้

  • คุกกี้เพื่อการวิเคราะห์

    คุกกี้ประเภทนี้จะทำการเก็บข้อมูลการใช้งานเว็บไซต์ของคุณ เพื่อเป็นประโยชน์ในการวัดผล ปรับปรุง และพัฒนาประสบการณ์ที่ดีในการใช้งานเว็บไซต์ ถ้าหากท่านไม่ยินยอมให้เราใช้คุกกี้นี้ เราจะไม่สามารถวัดผล ปรับปรุงและพัฒนาเว็บไซต์ได้

  • คุกกี้เพื่อปรับเนื้อหาให้เข้ากับกลุ่มเป้าหมาย

    คุกกี้ประเภทนี้จะเก็บข้อมูลต่าง ๆ รวมทั้งข้อมูลวส่วนบบุคลเกี่ยวกับตัวคุณเพื่อเราสามารถนำมาวิเคราะห์ และนำเสนอเนื้อหา ให้ตรงกับความเหมาะสมกับความสนใจของคุณ ถ้าหากคุณไม่ยินยอมเราจะไม่สามารถนำเสนอเนื้อหาและโฆษณาได้ไม่ตรงกับความสนใจของคุณ

บันทึก