
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 นั้นง่ายมาก ดำเนินการดังนี้:
- เข้าสู่ระบบ WordPress admin dashboard
- ไปที่ "Plugins" → "Add New Plugin"
- ค้นหา "Advanced Custom Fields"
- ค้นหาและติดตั้ง plugin โดย Elliot Condon (ผู้พัฒนา ACF ทางการ)
- เปิดใช้งาน (Activate) plugin
- จะเห็นเมนูใหม่ "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 นี้ควรแสดงที่ไหน เช่น:
- แสดงบน Post Type เฉพาะ (Posts, Pages, Custom Post Types)
- แสดงใน Template เฉพาะ (ถ้าเลือก page template ที่สร้างไว้)
- แสดงใน Category หรือ Taxonomy เฉพาะ
- แสดงบนหน้า admin ของ WordPress settings หรือ options
การใช้ ACF Field ในเทมเพลต Theme
เมื่อตั้งค่า Field Group และ Location Rules เสร็จแล้ว ได้เวลาแสดงค่า field เหล่านั้นในเว็บไซต์ ใน PHP template files ของ theme ให้ใช้ฟังก์ชัน get_field() เพื่อเรียกค่า
ตัวอย่าง: ถ้าสร้าง field ชื่อ 'phone_number' สามารถเรียกใช้ได้ดังนี้:
- <?php echo get_field('phone_number'); ?> — แสดงค่า
- <?php the_field('phone_number'); ?> — แสดงค่าโดยตรง (รวมเอาต์พุตแล้ว)
- <?php $value = get_field('phone_number'); if($value) { echo $value; } ?> — เช็กเงื่อนไขก่อนแสดง
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 เหมาะสำหรับเป็นทางเลือกของ:
- เว็บอสังหาริมทรัพย์ — เพิ่ม Custom Post Type "Property" พร้อม field เช่น ห้องนอน, ห้องน้ำ, ราคา, ที่ตั้ง, รูปภาพ
- เว็บพอร์ตโฟลิโอ / Showcase — สร้าง Custom Post Type "Projects" พร้อมคำอธิบาย, ลิงค์, ภาพยอดนิยม
- เว็บสินค้า / E-Commerce — เพิ่มเนื้อหาเพิ่มเติมเช่น SKU, ราคา, สต็อก, คำวิจารณ์ (reviews) โดยไม่ต้องจ่ายสำหรับ WooCommerce บางครั้ง
- เว็บนิยาย / บล็อก — สร้าง field "เลขบท" (chapter number), "ผู้นำเรื่อง" (author), "วันออกแบบ" (published date) พิเศษ
- หน้าแล้นดิ้ง (Landing Pages) — สร้าง Flexible Content field เพื่อให้ผู้บริหารเลือก section ต่างๆ มาประกอบหน้าแล้นดิ้งแบบ Drag-and-Drop
เทคนิคการค้นหาค่า ACF ด้วย WP Query
หากต้องการค้นหา post โดยใช้เงื่อนไข meta query (ค่า ACF field) สามารถใช้ WP_Query ได้เช่นนี้:
- $args = array( 'post_type' => 'post', 'meta_key' => 'your_field_name', 'meta_value' => 'some_value', 'meta_compare' => '=' )
- $query = new WP_Query( $args );
ทีมค่าย 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