วิธีสร้างและใช้ฟิลด์ที่กำหนดเองของ WordPress

เผยแพร่แล้ว: 2020-04-23

ข้อดีหลักประการหนึ่งของ WordPress คือความเก่งกาจซึ่งเป็นไปได้ด้วยคุณสมบัติการขยายในตัว ในบรรดาสูตรส่วนขยายต่างๆ ที่เรานำเสนอ เราพบ ฟิลด์ที่กำหนดเอง :

WordPress มีความสามารถในการอนุญาตให้ผู้เขียนบทความกำหนด ฟิลด์ที่กำหนดเอง ให้กับโพสต์ ข้อมูลเพิ่มเติมตามอำเภอใจนี้เรียกว่า ข้อมูลเมตา

ข้อมูลเมตาได้รับการจัดการด้วย คู่คีย์/ค่า คีย์ คือชื่อขององค์ประกอบข้อมูลเมตา ค่า คือข้อมูลที่จะปรากฏในรายการข้อมูลเมตาในแต่ละโพสต์ที่เกี่ยวข้องกับข้อมูล

เอกสาร WordPress.org

ตัวอย่างเช่น หากเราต้องการสร้างข้อมูลเมตาเกี่ยวกับแนวคิดที่เกี่ยวข้องกับโลกยานยนต์ เราจะมีสิ่งต่างๆ เช่น

  • ยี่ห้อ : Ford
  • รุ่น : Focus
  • สี : ขาว
  • กำลัง : 110hp
  • ฯลฯ

ในโพสต์ของวันนี้ ผมจะแสดงให้คุณเห็นถึงวิธีสร้างฟิลด์แบบกำหนดเอง วิธีใช้งาน และวิธีที่ฟิลด์เหล่านี้จะช่วยคุณในฐานะผู้ใช้ WordPress และ/หรือนักพัฒนา โปรดทราบว่าคุณจะต้องมีความเข้าใจพื้นฐานเกี่ยวกับวิธีการเขียนโค้ดใน WordPress... แต่ฉันหวังว่าคุณจะสามารถติดตามโพสต์ได้อย่างง่ายดาย โดยเฉพาะอย่างยิ่งเมื่อฉันแสดงวิธีใช้ปลั๊กอินที่ยอดเยี่ยมสำหรับการทำงานกับฟิลด์ที่กำหนดเอง: ฟิลด์กำหนดเองขั้นสูง

วิธีการทำงานของฟิลด์ที่กำหนดเองของ WordPress

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

ตารางในฐานข้อมูลก็เหมือนกับตารางอื่นๆ ที่คุณเคยใช้งานมาก่อน โดยทั่วไป พวกเขามีชุดของคอลัมน์ที่กำหนด "สิ่งที่คุณจัดเก็บได้" และแถวที่มีข้อมูลเฉพาะ ในกรณีของ wp_posts คอลัมน์จะเป็นเช่น title , content , author , วันที่ตีพิมพ์ และอื่นๆ ไม่มีอะไรแฟนซีพูดตามตรง:

ตาราง wp_posts ในฐานข้อมูล WordPress
ตาราง wp_posts ในฐานข้อมูล WordPress

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

ในทุกฐานข้อมูลของ WordPress มีตารางอื่นที่เรียกว่า wp_postmeta ดังนี้:

ตาราง wp_postmeta ในฐานข้อมูล WordPress
ตาราง wp_postmeta ในฐานข้อมูล WordPress

ดังที่คุณเห็นในภาพหน้าจอก่อนหน้านี้ ตารางข้อมูลเมตาได้รับการออกแบบในลักษณะที่เราสามารถสร้างคู่คีย์/ค่าโดยใช้คอลัมน์ meta_key และ meta_value และเชื่อมโยงแต่ละคู่กับเนื้อหาเฉพาะโดยใช้คอลัมน์ post_id ง่ายพอ!

มาดูกันดีกว่าว่าเราจะทำงานกับตารางนี้ได้อย่างไร!

วิธีสร้างฟิลด์กำหนดเองใหม่

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

ในการแก้ไขฟิลด์ที่กำหนดเองในตัวแก้ไข WordPress คุณต้องเปิดใช้งานแผงขั้นสูง เพียงคลิกไอคอนขวาบนในตัวแก้ไขแล้วคลิก ตัวเลือก :

การตั้งค่า Gutenberg
การตั้งค่ากูเทนเบิร์ก

ซึ่งจะเป็นการเปิดหน้าต่างใหม่พร้อมแผงต่างๆ ที่มีอยู่ใน Gutenberg ค้นหา ฟิลด์ที่กำหนดเอง ที่มีชื่อและเปิดใช้งาน:

วิธีเปิดใช้งานฟิลด์ที่กำหนดเองใน Gutenberg
วิธีเปิดใช้งานฟิลด์ที่กำหนดเองใน Gutenberg

เมื่อเปิดใช้งานแล้ว คุณสามารถสร้างและแก้ไขฟิลด์ที่กำหนดเองของโพสต์ได้อย่างง่ายดาย:

ฟิลด์กำหนดเองใน Gutenberg
ฟิลด์ที่กำหนดเองใน Gutenberg

อินเทอร์เฟซที่เรียบง่ายนี้ช่วยให้เราสร้างคู่คีย์/ค่าได้มากเท่าที่เราต้องการ ตัวอย่างเช่น ในภาพหน้าจอด้านบน คุณจะเห็นวิธีที่ฉันได้เพิ่มฟิลด์บางฟิลด์ที่ฉันแนะนำในตอนต้นของโพสต์นี้: nelio_brand , nelio_model , nelio_color และ nelio_hp

วิธีใช้ฟิลด์ที่กำหนดเอง

ในการใช้ฟิลด์ที่กำหนดเอง คุณต้องมีสามสิ่ง: (a) ตัวระบุโพสต์ (b) ชื่อของฟิลด์ที่คุณต้องการใช้ และ (c) ตัดสินใจว่าคุณต้องการใช้ที่ใด ตัวอย่างเช่น สมมติว่าฉันต้องการแสดงฟิลด์ nelio_brand ที่เราสร้างขึ้นในตัวอย่างด้านบนที่ส่วนท้ายของโพสต์ ในการดึงค่ามีฟังก์ชั่นชื่อ get_post_meta ที่เราสามารถใช้ได้ดังนี้:

 function nelio_add_brand_field( $content ) { $brand = get_post_meta( get_the_ID(), 'nelio_brand', true ); return "{$content}\n<p><strong>Brand:<strong> {$brand}</p>"; } add_filter( 'the_content', 'nelio_add_brand_field' );

สังเกตว่าในตัวอย่างที่แล้ว เราได้กล่าวถึงสามสิ่งที่ฉันกล่าวถึงก่อนหน้านี้:

  • พารามิเตอร์แรกของ get_post_meta คือตัวระบุของโพสต์ที่ฉันสนใจอย่างแม่นยำ ในกรณีนี้ เราใช้ get_the_ID() ซึ่งส่งคืน ID ของโพสต์ปัจจุบัน
  • พารามิเตอร์ที่สองคือชื่อของฟิลด์เมตาของเรา (ในกรณีนี้คือ nelio_brand )
  • สุดท้าย เราใช้ฟิลด์เมตาในส่วนหน้า ซึ่งเป็นสิ่งที่เราต้องการแสดงที่ส่วนท้ายสุดของเนื้อหาของโพสต์ และคุณสามารถบอกได้เพราะฉันกำลังดึงข้อมูลและใช้งานมันระหว่างตัวกรอง the_content

ผลลัพธ์ของการทำเช่นนี้เป็นสิ่งที่คล้ายกับที่คุณเห็นในภาพหน้าจอต่อไปนี้:

สกรีนช็อตของโพสต์ที่แสดงฟิลด์ที่กำหนดเองต่อจากเนื้อหา
สกรีนช็อตของโพสต์ที่แสดงฟิลด์ที่กำหนดเองต่อจากเนื้อหา

แต่นี่เป็นเพียงตัวอย่างเท่านั้น แน่นอน! คุณสามารถใช้ฟิลด์ที่กำหนดเองได้หลายวิธีนอกเหนือจาก "การพิมพ์บางอย่างในส่วนหน้า" ตัวอย่างเช่น การทดสอบ Nelio A/B เป็นหนึ่งในปลั๊กอินที่เราสร้างขึ้นและออกแบบมาเพื่อเรียกใช้การทดสอบแยกในไซต์ WordPress การทดสอบ A/B จำเป็นต้องมีการสร้างเนื้อหาทางเลือก และปลั๊กอินของเราใช้ฟิลด์ที่กำหนดเองเพื่อติดป้ายกำกับเนื้อหาทางเลือกดังกล่าว และจำกัดวิธีการและเวลาที่ผู้เยี่ยมชมจะเข้าถึงเนื้อหานี้ได้

ฟังก์ชัน WordPress เพื่อจัดการฟิลด์ที่กำหนดเอง

ในลักษณะเดียวกับที่เรามีวิธีการดึงค่าของฟิลด์ที่กำหนดเอง ( get_post_meta ) WordPress มีวิธีเพิ่มเติมในการสร้าง อัปเดต และลบฟิลด์ที่กำหนดเองโดยทางโปรแกรม: add_post_meta , update_post_meta และ delete_post_meta ฟังก์ชันเหล่านี้ทำงานได้ตามที่คุณคาดหวัง ดังนั้นฉันจะไม่รบกวนคุณด้วยคำอธิบายเพิ่มเติม...

ฟิลด์กำหนดเองขั้นสูงคืออะไรและอย่างไร

ตอนนี้คุณรู้แล้วว่าฟิลด์แบบกำหนดเองทำงานอย่างไรใน WordPress ฉันคิดว่าฉันสามารถให้ข่าวดีกับคุณได้แล้ว: มีปลั๊กอินหลายตัวที่ช่วยลดความยุ่งยากในกระบวนการทำงานกับฟิลด์ที่กำหนดเองได้อย่างมาก!

หนึ่งในปลั๊กอินที่เป็นที่รู้จักและได้รับคะแนนดีที่สุดในการสร้างข้อมูลเมตาในไซต์ WordPress คือ Advanced Custom Fields ด้วยสิ่งนี้ คุณจะไม่เพียงแต่สามารถกำหนดฟิลด์ที่กำหนดเองในวิธีที่ง่ายกว่าเท่านั้น แต่คุณยังจะมีโอกาสเพลิดเพลินไปกับอินเทอร์เฟซผู้ใช้ที่ได้รับการปรับปรุงเพื่อจัดการกับฟิลด์เหล่านี้ อินเทอร์เฟซนี้ช่วยให้แน่ใจว่าค่าที่คุณตั้งไว้มีความสมเหตุสมผลและมีความหมาย: วันที่ รูปภาพ แกลเลอรี่ ช่วง ตัวเลข... คุณตั้งชื่อมัน!

สกรีนช็อตของปลั๊กอินฟิลด์กำหนดเองขั้นสูง
ภาพหน้าจอของปลั๊กอิน Advanced Custom Fields

หากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ ACF มีแหล่งข้อมูลมากมาย แต่ฉันคิดว่าการบรรยายโดย Jo Minney สามารถช่วยให้คุณเริ่มต้นได้จริงๆ:

หวังว่าการแนะนำเล็กน้อยเกี่ยวกับฟิลด์ที่กำหนดเองนี้จะช่วยคุณในการเป็นนักพัฒนา WordPress ที่ดีขึ้น!

ภาพเด่นโดย Polina Rytova บน Unsplash