ใช้ Custom Fields ACF ใน WordPress สำหรับมือใหม่

เพิ่มช่องข้อมูลพิเศษให้หน้าเว็บ WordPress ได้เองโดยไม่ต้องเขียนโค้ด

ใช้ Custom Fields ACF ใน WordPress สำหรับมือใหม่ WordPress

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

Advanced Custom Fields หรือเรียกสั้น ๆ ว่า ACF คือ Plugin ของ WordPress ที่ช่วยให้คุณสร้างและจัดการข้อมูลเพิ่มเติมสำหรับโพสต์ (Posts) และหน้า (Pages) ของคุณโดยไม่ต้องเขียนโค้ด PHP เอง ปกติแล้ว โพสต์ของ WordPress จะมีข้อมูลพื้นฐาน เช่น ชื่อเรื่อง (Title), เนื้อหา (Content), และวันที่เขียน (Date) แต่หากคุณต้องการเพิ่มข้อมูลเพิ่มเติม เช่น ราคา, สี, ตำแหน่ง, หรือข้อมูลพิเศษอื่น ๆ ก็สามารถใช้ ACF ได้

ACF ช่วยให้คุณสร้าง Custom Fields (ช่องข้อมูลเสริม) ได้ง่าย ๆ และแสดงข้อมูลเหล่านั้นบนหน้าเว็บไซต์ของคุณ ทั้งหมดนี้ทำได้โดยใช้ Interface GUI ที่ใช้งานง่าย ไม่ต้องเขียนโค้ด PHP

ประเภทของ Custom Fields ใน ACF

ACF รองรับ Custom Field Types มากมายที่คุณสามารถเลือกใช้ตามความต้องการ:

วิธีติดตั้ง ACF Plugin

ACF มีรุ่นฟรีและรุ่นเสียเงิน (Pro) ให้เลือกใช้:

  1. ไปที่ WordPress Admin Dashboard
  2. ไปที่ Plugins > Add New
  3. ค้นหา "Advanced Custom Fields" (ผู้พัฒนา: Delicious Brains)
  4. คลิกปุ่ม Install Now
  5. หลังติดตั้ง คลิก Activate
  6. ไปที่เมนู ACF ที่ด้านซ้ายของ Dashboard เพื่อเริ่มสร้าง Custom Fields

หลังติดตั้ง ACF แล้ว คุณจะเห็นเมนูใหม่ชื่อ ACF ปรากฏที่ Admin Dashboard ซึ่งจากนี้ต่อไป คุณสามารถเริ่มสร้าง Custom Fields Group ได้

วิธีสร้าง Custom Fields ด้วย ACF

ขั้นตอนพื้นฐานสำหรับสร้าง Custom Fields Group:

  1. ไปที่ ACF > Field Groups
  2. คลิก Add New เพื่อสร้าง Group ใหม่
  3. ตั้งชื่อ Group เช่น "Product Details" หรือ "Author Information"
  4. คลิก Add Field เพื่อเพิ่ม Custom Field แรก
  5. ใส่ชื่อ Field เช่น "Price" และเลือกประเภท เช่น "Number"
  6. ตั้งค่าเพิ่มเติม เช่น Default Value, Required หรือไม่ (ถ้าต้อง)
  7. คลิก Add Field อีกครั้งเพื่อเพิ่ม Field ต่อไป
  8. ในส่วน "Display Settings" ให้กำหนดว่า Custom Fields Group นี้ควรแสดงใน Post Type ใด เช่น Products, Blog Posts เป็นต้น
  9. คลิก Publish เพื่อบันทึก
Tip: หากสร้าง Field Group สำหรับสินค้า (Products) ให้ตั้ง "Display Settings" ให้เลือก Post Type "Product" เพื่อให้ Field Group แสดงเฉพาะในหน้าแก้ไข Product เท่านั้น ไม่ให้ปนเปื้อนกับ Post Types อื่น

วิธีแสดง Custom Fields บนหน้าเว็บไซต์

หลังสร้าง Custom Fields แล้ว คุณต้องแสดงข้อมูลเหล่านั้นบนหน้าเว็บไซต์ วิธีทั่วไปมีสามวิธี:

วิธีที่ 1: ใช้ Block Editor (ถ้า WordPress 5.0 ขึ้นไป)

ขั้นตอน:

  1. เข้าไปแก้ไข Product หรือ Post ของคุณ
  2. ถ้า ACF รองรับ Block Editor บนธีม/Plugin นั้น คุณจะเห็น ACF Block มีให้เลือก
  3. เพิ่ม ACF Block แล้วเลือก Custom Field ที่อยากแสดง
  4. Block จะ Render ข้อมูล Custom Field โดยอัตโนมัติ

วิธีที่ 2: ใช้ ACF Shortcode

ถ้าต้องการแสดง Custom Field ใน Post Content หรือ Page Content ให้ใช้ Shortcode ของ ACF:

[acf field="field_name"]

แทน "field_name" ด้วยชื่อจริงของ Custom Field เช่น [acf field="price"]

วิธีที่ 3: ใช้ Loops แบบ PHP (สำหรับ Developers)

ในไฟล์ Template ของธีม (เช่น single.php, archive.php) คุณสามารถใช้ Function ของ ACF เพื่อแสดง Custom Field:

<?php
$price = get_field( 'price' );
echo 'Product Price: ' . $price;
?>

วิธีนี้ต้องรู้ PHP เล็กน้อย แต่ให้ความยืดหยุ่นสูงสุด

ACF Free vs ACF Pro

ACF มีสองเวอร์ชัน ที่ต่างกันในเรื่องของคุณสมบัติ:

สำหรับเว็บไซต์เก่าและเซิร์ฟเวอร์ Shared Hosting ส่วนใหญ่ ACF Free ก็เพียงพอแล้ว


ตรวจสอบว่า ACF ทำงานถูกต้อง

หลังติดตั้ง ACF และสร้าง Custom Fields Group ให้ทดสอบดังต่อไปนี้:

# 1. ไปที่ ACF > Field Groups ในแดชบอร์ด
#    ตรวจสอบว่า Field Group ที่สร้างแล้วปรากฏ

# 2. ไปที่ Post/Product แล้วตรวจดูว่า Custom Fields ปรากฏด้านล่าง Content Editor

# 3. ใส่ข้อมูลข้างใน Custom Fields แล้วบันทึก

# 4. ไปดูหน้า Post/Product บน Frontend
#    ตรวจสอบว่า Custom Field Data แสดงขึ้นหรือไม่
#    หากไม่แสดง อาจต้องแก้ไข Template File หรือเพิ่ม Shortcode

# 5. ลองทดสอบ Repeater Field (ถ้ามี)
#    โดยเพิ่มหนึ่งหรือมากกว่าหนึ่งรายการแล้วดูว่าแสดงได้หรือไม่
Tip: ถ้าสร้าง Custom Fields แล้วแต่ไม่เห็นแสดงบน Frontend ให้ตรวจสอบว่า Theme/Template ของคุณรองรับ Custom Fields หรือ ACF Block ทั้งหมดหรือไม่ ลองใช้ Shortcode [acf field="..."] ด้านใน Post Content เพื่อทดสอบ

แก้ปัญหาที่พบบ่อย

Error: "Custom Fields ไม่ปรากฏเมื่อแก้ไข Post"

สร้าง Custom Fields Group แล้ว แต่ไม่เห็นปรากฏในหน้าแก้ไข Post

วิธีแก้: ตรวจสอบ Display Settings ของ Field Group ว่าได้กำหนด Post Type ที่ถูกต้องหรือไม่ ถ้าตั้งไว้เป็น "Product" แต่คุณแก้ไข "Post" ธรรมชาติ Custom Fields จะไม่ปรากฏ ให้ไปแก้ไข Field Group และเปลี่ยน Post Type ให้ตรงกับที่คุณต้อง

Error: "Custom Fields แสดง Label แทนที่จะเป็นข้อมูล บนหน้า Frontend"

ใส่ข้อมูลใน Custom Fields แล้วบันทึก แต่เมื่อไปดู Frontend แสดงเป็น Shortcode หรือ Label เท่านั้น ไม่เห็นข้อมูลจริง

วิธีแก้: ธีมหรือ Template ของคุณยังไม่ได้เตรียม Loop เพื่อแสดง ACF Field ให้ลองเพิ่ม Shortcode [acf field="field_name"] ลงใน Post Content หรือแก้ไขไฟล์ Template .php ของธีม เพื่อเพิ่มบรรทัดโค้ด PHP ที่ดึงข้อมูล ACF Field

Error: "Repeater Field ไม่ทำงาน หรือแสดงผิด"

สร้าง Repeater Field (เช่น ลูกค้าหลายคน) แต่แสดงผิดหรือไม่ทำงาน

วิธีแก้: Repeater Field ต้องใช้ Loop ใน PHP เพื่อแสดง เช่น while (have_rows('field_name')) loop ที่มี get_sub_field() ลองอ้างอิง Documentation ของ ACF หรือติดต่อผู้พัฒนาธีมเพื่อขอตัวอย่างโค้ด PHP ที่ถูกต้อง

Error: "ACF Plugin ทำให้เว็บไซต์ช้า"

ติดตั้ง ACF แล้วเว็บไซต์ช้าลง

วิธีแก้: ACF เองไม่ได้ช้า แต่อาจเกิดจาก Custom Fields ที่มีขนาดใหญ่เกินไป (เช่น Repeater ที่มีรายการหลาย ๆ พันรายการ) ลองใช้ Plugin Caching เช่น WP Super Cache เพื่อแคช ข้อมูล ACF Fields

Error: "ข้อมูล ACF ไม่ถูกบันทึก"

ใส่ข้อมูลใน Custom Fields แล้วคลิก Save แต่ข้อมูลไม่บันทึก

วิธีแก้: อาจเกิดจาก Permission ที่ไม่เพียงพอ หรือ PHP Error ลองตรวจสอบ Browser Console (F12 > Console) ว่ามี Error อะไรหรือไม่ หรือลองปิด Plugin อื่น ๆ ชั่วคราวเพื่อตรวจสอบว่า Plugin ไหนขัดแย้ง


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

Q: แบบไหนเวลาต้องใช้ ACF และแบบไหนที่ไม่ต้อง?

A: ใช้ ACF ถ้าต้องการเพิ่มข้อมูลเพิ่มเติมที่นอกเหนือไปจากชื่อเรื่องและเนื้อหาโพสต์ เช่น ราคา, สี, ผู้ติดต่อ เป็นต้น ถ้าเป็นบล็อกข้อความธรรมดา ไม่จำเป็นต้องใช้ ACF ยิ่ง ACF ยิ่งมีประโยชน์เมื่อต้องการ Custom Data ที่มีรูปแบบแน่นอนและซ้ำกันหลาย ๆ ครั้ง

Q: ACF Free เพียงพอสำหรับ WooCommerce ร้านค้าขนาดเล็กหรือไม่?

A: ได้ ACF Free มี Repeater Field, Text, Number, Image เพียงพอสำหรับเพิ่มข้อมูลสินค้า WooCommerce ขนาดเล็ก ถ้าร้านค้าเล็ก ไม่ต้องใช้ ACF Pro ก็ได้ เพราะ WooCommerce เองก็มี Product Attributes และ Custom Meta พอแล้ว

Q: ถ้าสืบค้นข้อมูล ACF ผ่าน SQL ได้ไหม?

A: ได้ ACF เก็บข้อมูล Custom Fields ใน WordPress Meta Table (wp_postmeta) คุณสามารถ Query ได้ผ่าน SQL หรือใช้ Function WordPress เช่น get_post_meta() แต่ไม่แนะนำให้ Query โดยตรงผ่าน SQL เพราะอาจเสี่ยงต่อการเสียหาย ให้ใช้ ACF Functions แทน

อยากรู้ว่าการตั้งค่าโดเมนหรือ DNS ของคุณถูกต้องหรือไม่ ลองตรวจสอบฟรีได้ที่ dnsxray.com เครื่องมือวิเคราะห์สุขภาพโดเมนที่ใช้งานง่าย