Advanced Custom Fields (ACF) คู่มือสร้าง Custom Fields บน WordPress

WordPress นั้นยืดหยุ่นและมีความสามารถมากมาย แต่บางครั้งเนื้อหาพื้นฐาน เช่น ชื่อ คำอธิบาย เนื้อหา ก็ไม่พอที่จะสนองตอบความต้องการของโปรเจกต์ที่ซับซ้อน นั่นคือจุดที่ Advanced Custom Fields (ACF) เข้ามามีบทบาท — plugin ที่ช่วยให้นักพัฒนา และแม้กระทั่งผู้บริหารเว็บสามารถเพิ่มประเภทของข้อมูลที่ต้องการได้อย่างง่ายดายโดยไม่ต้องแตะโค้ด

Advanced Custom Fields (ACF) คืออะไร

Advanced Custom Fields หรือ ACF เป็น WordPress plugin ที่มีจุดประสงค์ให้ผู้บริหารและนักพัฒนาเว็บสามารถสร้าง Custom Fields เพิ่มเติมนอกเหนือจากเนื้อหา (content) และคำอธิบาย (excerpt) ที่มีมาตั้งแต่แรก ด้วยวิธีนี้ คุณสามารถเพิ่มความสามารถให้กับ WordPress ในการจัดเก็บข้อมูลที่มีโครงสร้างมากขึ้น ไม่ว่าจะเป็นช่องข้อความ, เลขที่โทรศัพท์, ลิงค์ URL, หรือแม้กระทั่งรูปภาพและไฟล์แนบ

ACF ออกแบบมาเพื่อให้สะดวก โดยให้ส่วนติดต่อแบบ drag-and-drop สำหรับการสร้างและการจัดการ field group โดยไม่ต้องเขียนโค้ด เมื่อตั้งค่า field เสร็จแล้ว ก็สามารถเข้าถึงค่าของ field นั้นจากเทมเพลต PHP ของ theme ได้อย่างง่ายดายผ่านฟังก์ชัน get_field() หรือ the_field()

เหตุใดจึงต้องใช้ ACF

สาเหตุหลักที่ WordPress developer เลือกใช้ ACF มีหลายประการ ไม่ว่าจะเป็นการสร้าง Custom Post Types ที่มีข้อมูลเพิ่มเติม เช่น สมบัติอสังหาริมทรัพย์ (ระเบียง, ห้องนอน, ราคา) หรือสินค้าในอีคอมเมิร์ส (SKU, ราคา, สต็อก) หรือแม้กระทั่งเนื้อหาที่ต้องการความยืดหยุ่นในการจัดเรียง เช่น หน้าเป้นด้วยเลย์เอาต์แบบต่างๆ

นอกจากนี้ ACF ช่วยให้สามารถสร้างเนื้อหาได้อย่างมีโครงสร้างมากขึ้น ซึ่งช่วยในเรื่องของ SEO, API responses, และการปรับปรุงประสบการณ์ของผู้บริหารเว็บ (WordPress admin experience) ทำให้พวกเขาสามารถจัดการเนื้อหาได้ง่ายขึ้นและผิดพลาดได้น้อยลง

วิธีติดตั้ง Advanced Custom Fields

การติดตั้ง ACF ใน WordPress นั้นง่ายมาก ดำเนินการดังนี้:

  1. เข้าสู่ระบบ WordPress admin dashboard
  2. ไปที่ "Plugins" → "Add New Plugin"
  3. ค้นหา "Advanced Custom Fields"
  4. ค้นหาและติดตั้ง plugin โดย Elliot Condon (ผู้พัฒนา ACF ทางการ)
  5. เปิดใช้งาน (Activate) plugin
  6. จะเห็นเมนูใหม่ "Custom Fields" ในแถบด้านข้าง (sidebar) ของ WordPress admin

นอกจากนี้ AsiaGB ยังมี WordPress Hosting ที่เสถียร พร้อม Softaculous — สามารถติดตั้ง WordPress พร้อม plugin ต่างๆ ในไม่กี่คลิก โดยไม่ต้องห่วงปัญหาทางเทคนิค ราคาเริ่มต้นเพียง 500 บาท/ปี พร้อม DirectAdmin, SSD, Uptime 99%, Backup 2 ครั้ง/เดือน

การสร้าง Field Group ใน ACF

หลังจากติดตั้ง ACF เสร็จแล้ว ขั้นตอนต่อไปคือการสร้าง "Field Group" ซึ่งคือการรวมกลุ่มของ Custom Fields ที่เกี่ยวข้องกัน ตัวอย่างเช่น ถ้าเป็นเว็บอีคอมเมิร์ส ก็อาจสร้าง Field Group ชื่อ "ข้อมูลสินค้า" ที่มี field เช่น SKU, ราคา, สต็อก, ภาพสินค้า เป็นต้น

ในหน้า "Custom Fields" → "Field Groups" ให้คลิก "Add New" แล้วตั้งชื่อ field group ตามที่ต้องการ จากนั้นเพิ่ม field แต่ละตัวโดยคลิก "Add Field" และกำหนดประเภทของ field (Text, Number, Date, Image, Repeater ฯลฯ)

ประเภท Field ที่ ACF รองรับ

ACF มีประเภท field ตั้งแต่พื้นฐานไปจนถึงขั้นสูงมากมาย ดังนี้:

ประเภท Field พื้นฐาน (Free)

Text — ช่องข้อความเดียวบรรทัด, Number — ช่องตัวเลข, Textarea — ข้อความหลายบรรทัด, Email — ช่องอีเมล, URL — ช่อง URL, Password — ช่องรหัสผ่าน (เข้ารหัส), Select — เมนูแบบ dropdown, Radio Button — ปุ่มเลือก, Checkbox — กล่องทำเครื่องหมาย, True/False — ปุ่มสวิตช์, Date Picker — เลือกวันที่, Color Picker — เลือกสี

ประเภท Field ขั้นสูง (Pro)

Repeater — สนามซ้ำ (เหมาะสำหรับข้อมูลที่มีหลายแถว), Flexible Content — เลย์เอาต์แบบยืดหยุ่น, Clone — คัดลอก field group อื่น, Options Page — สร้างหน้าตั้งค่าเพิ่มเติม, Google Maps — ฝังแผนที่, Relationship — เชื่อมโยง post อื่นๆ

Location Rules และการกำหนด Field Group

หลังสร้าง field แล้ว ต้องกำหนด "Location Rules" — นั่นคือเงื่อนไขที่บอก WordPress ว่า Field Group นี้ควรแสดงที่ไหน เช่น:

การใช้ ACF Field ในเทมเพลต Theme

เมื่อตั้งค่า Field Group และ Location Rules เสร็จแล้ว ได้เวลาแสดงค่า field เหล่านั้นในเว็บไซต์ ใน PHP template files ของ theme ให้ใช้ฟังก์ชัน get_field() เพื่อเรียกค่า

ตัวอย่าง: ถ้าสร้าง field ชื่อ 'phone_number' สามารถเรียกใช้ได้ดังนี้:

ACF Pro กับ ACF Free มีความแตกต่างอะไร

ACF มี 2 เวอร์ชัน คือ Free (ฟรีใน WordPress.org) และ Pro (เสียเงินสำหรับฟีเจอร์เพิ่มเติม)

ฟีเจอร์เฉพาะ Pro: Repeater Fields, Flexible Content, Clone Field, Options Pages, Google Maps, Relationship Field, User Role restrictions, Conditional Logic ขั้นสูง

ฟีเจอร์ที่มีทั้ง Free และ Pro: Text fields, Number, Email, URL, Select, Radio, Checkbox, Date Picker, Color Picker, File/Image uploads

ถ้าเว็บไซต์มีความต้องการเรื่อง Repeater fields (สำหรับข้อมูลที่ซ้ำๆ) หรือ Flexible Content (สำหรับเลย์เอาต์แบบต่างๆ) ควรอัปเกรดเป็น Pro อย่างไรก็ตาม สำหรับเว็บขนาดเล็ก-กลาง Free version ก็พอใจได้แล้ว

ข้อแนะนำ: ถ้าเว็บไซต์ใช้ WordPress Hosting บน AsiaGB ที่มี PHP 8.2/8.3, DirectAdmin, และ Backup ครบ ก็สามารถทดลองใช้ ACF ได้อย่างไม่กังวล โดยไม่ต้องเป็นห่วงปัญหา hosting ที่อาจส่งผลกระทบต่อการทำงาน

กรณีการใช้งาน ACF ในทางปฏิบัติ

ACF เหมาะสำหรับเป็นทางเลือกของ:

เทคนิคการค้นหาค่า ACF ด้วย WP Query

หากต้องการค้นหา post โดยใช้เงื่อนไข meta query (ค่า ACF field) สามารถใช้ WP_Query ได้เช่นนี้:

ทีมค่าย Elliot Condon (ผู้พัฒนา ACF) มีเอกสารอธิบายและตัวอย่างโค้ดยาวๆ ในเว็บ ACF ทางการเสมอ

ป้องกันปัญหา: Conditional Logic

ACF Pro มีฟีเจอร์ "Conditional Logic" ที่ช่วยให้ฟิลด์บางตัวซ่อนหรือแสดงตามเงื่อนไข ตัวอย่าง "ถ้าเลือก 'บ้าน' ในเมนู 'ประเภท' ให้แสดง field 'จำนวนห้อง'" นี่คือสิ่งที่ทำให้ผู้บริหารเว็บได้ประสบการณ์ที่ดีและเรียบง่าย

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

ACF Pro กับ ACF Free มีความแตกต่างอะไรบ้าง

ACF Pro มีฟีเจอร์เพิ่มเติมเช่น Repeater Fields, Flexible Content, Options Pages, Google Maps ฯลฯ ส่วน Free version มีเฉพาะ field types พื้นฐาน

ใช้ ACF เพื่อสร้าง Custom Post Type ได้ไหม

ได้ ACF ใช้งานได้กับ Posts, Pages, Custom Post Types ใดๆ ที่สร้างไว้ในเว็บไซต์

วิธีแสดงค่า ACF Field ในเทมเพลต WordPress คืออะไร

ใช้ฟังก์ชัน get_field() หรือ the_field() ใน template ไฟล์ เช่น echo get_field('field_name'); หรือ the_field('field_name');

Location Rules ในการกำหนด Field Group ทำงานอย่างไร

Location Rules คือเงื่อนไขที่ระบุว่า Field Group จะแสดงที่ Post Type ไหน, Taxonomy ไหน หรือหน้าใด ทำให้ควบคุมได้ว่าแต่ละชุดของ Custom Fields ปรากฏในที่ไหน

ACF Flexible Content คืออะไร

Flexible Content เป็น field type ของ ACF Pro ที่ช่วยให้สร้างเลย์เอาต์เพจแบบ Drag-and-Drop โดยให้เลือกจากหลายประเภท layout ที่สร้างไว้ เหมาะสำหรับเพจที่ต้องการความยืดหยุ่น

AsiaGB Hosting รองรับ ACF Plugin หรือไม่

ได้ AsiaGB มี WordPress Hosting ที่รองรับ ACF Plugin พร้อม DirectAdmin, PHP 7.4/8.2/8.3 ราคาเริ่มต้น 500 บาท/ปี

เริ่มต้นสร้าง WordPress Custom Fields วันนี้

เว็บไซต์ WordPress ที่มี Hosting เสถียรจาก AsiaGB ราคาเพียง 500 บาท/ปี พร้อม DirectAdmin, SSD, PHP 8.2/8.3, Backup 2 ครั้ง/เดือน, Uptime 99%

ดูแพ็กเกจ WordPress Hosting