WordPress Meta_Query: ทุกสิ่งที่คุณต้องรู้
เผยแพร่แล้ว: 2022-04-30หนึ่งในเครื่องมือที่ทรงพลังที่สุดใน WordPress คือความสามารถในการเพิ่มฟิลด์ที่กำหนดเองในโพสต์ นักพัฒนาหลายคนใช้ฟิลด์กำหนดเองขั้นสูงหรือฟิลด์เมตาแบบกำหนดเองสำหรับโพสต์
ในบทความนี้ เราจะพูดถึงวิธีการสืบค้นโพสต์ตามฟิลด์ที่กำหนดเองโดยใช้ฟังก์ชัน meta_query ใน WordPress ซึ่งจะเป็นประโยชน์สำหรับไซต์ที่มีฟังก์ชันการทำงานแบบกำหนดเองมากมาย
โพสต์ข้อความค้นหาตามค่า Meta
วิธีที่นิยมที่สุดในการค้นหาโพสต์ด้วยฟิลด์ที่กำหนดเองคือการกำหนดเป้าหมายค่าเมตาเฉพาะค่าหนึ่ง ตัวอย่างเช่น สมมติว่าเรามีไซต์ที่โพสต์มีฟิลด์ที่กำหนดเองซึ่งใช้ในการพิจารณาว่าโพสต์นั้นเป็น "เนื้อหาเด่น" หรือไม่ นี่เป็นเรื่องปกติเมื่อสร้างส่วนแนะนำบนไซต์ WordPress
แน่นอนว่าโค้ดข้างต้นจะแตกต่างกันไปขึ้นอยู่กับสิ่งที่คุณตั้งชื่อฟิลด์และคีย์เมตาของคุณ แต่ 'คีย์' คือชื่อของฟิลด์ที่กำหนดเอง ในขณะที่ 'ค่า' คือสิ่งที่เรากำลังค้นหาโพสต์ ฟิลด์ 'เปรียบเทียบ' ใช้สำหรับการดำเนินการเปรียบเทียบช่วงต่างๆ ที่เราจะพูดถึงในภายหลังในโพสต์
การใช้สิ่งนี้ใน WP_Query จะทำให้เราได้รับอาร์เรย์ที่ยอดเยี่ยมสำหรับฟังก์ชั่นลูปเพื่อแสดงโพสต์ ในโพสต์นี้ เราจะพูดถึงฟังก์ชัน meta_query มากกว่าวิธีแสดงผลลัพธ์ WP_Query
โพสต์ข้อความค้นหาตามค่า Meta หลายค่า
หากคุณต้องการตรวจสอบค่าเมตาคีย์เทียบกับหลายค่า ควรใช้โอเปอเรเตอร์ "IN"
โพสต์ข้อความค้นหาด้วยคีย์ Meta หลายรายการ
ตอนนี้เราได้สอบถามโพสต์ด้วยเมตาคีย์เดียวแล้ว มาทำแบบเดียวกับหลายฟิลด์/คีย์ที่กำลังถูกสอบถาม วิธีนี้จะช่วยให้คุณค้นหาโพสต์ตามฟิลด์ที่กำหนดเองได้หลายฟิลด์ ตัวอย่างนี้รวมทั้งสองสิ่งที่เราทำข้างต้นโดยซ้อนคิวรีลงในอาร์เรย์และเพิ่ม 'ความสัมพันธ์' ลงใน meta_query
ฟิลด์ 'ความสัมพันธ์' สามารถตั้งค่าเป็น 'AND' หรือ 'OR' ได้ ดังนั้นคุณจึงสามารถกำหนดให้เป็นไปตามเงื่อนไขทั้งหมดหรือเพียงแค่เงื่อนไขเดียว
ตัวดำเนินการเปรียบเทียบ Meta Query
มีโอเปอเรเตอร์สองสามตัวที่จะเป็นประโยชน์ในการสอบถามโพสต์ของคุณโดยใช้ข้อความค้นหาเมตา ต่อไปนี้คือรายละเอียดโดยย่อของตัวดำเนินการเปรียบเทียบแต่ละรายการและวิธีใช้งาน
- '=' ค้นหาคีย์เมตาที่เท่ากับค่าเมตา
- '!=' ค้นหาคีย์เมตาที่ไม่เท่ากับค่าเมตา
- '>' ค้นหาคีย์เมตาที่มากกว่าค่าเมตา
- '>=' ค้นหาคีย์เมตาที่มากกว่า & เท่ากับค่าเมตา
- '<' ค้นหาคีย์เมตาที่น้อยกว่าค่าเมตา
- '<=' ค้นหาคีย์เมตาที่น้อยกว่า & เท่ากับค่าเมตา
- 'LIKE' เคียวรีเมตาคีย์ที่มีคำ/วลี (เช่น เคียวรี “red” จะจับคู่กับวลี “Red”, “looksred” และ “redstyle”)
- 'ไม่ชอบ' ตรงกันข้ามกับข้างบน
- 'IN' ค้นหาคีย์เมตาที่มีค่าอยู่ในอาร์เรย์
- 'NOT IN' เคียวรีเมตาคีย์ที่ไม่มีค่าอยู่ในอาร์เรย์
- 'BETWEEN' สืบค้นเมตาคีย์โดยที่ค่าอยู่ระหว่างสองตัวเลข
- 'NOT BETWEEN' ค้นหาคีย์เมตาโดยที่ค่าไม่อยู่ระหว่างสองตัวเลข
- 'EXISTS' เคียวรีเมตาคีย์ที่มีค่าอยู่เลย
- 'NOT EXISTS' เคียวรีเมตาคีย์ที่ไม่มีค่าอยู่เลย
- 'REGEXP' ค้นหาคีย์เมตาตามนิพจน์ทั่วไป
- 'ไม่ใช่ REGEXP' ตรงข้ามกับ REGEXP ด้านบน
วิธีจัดเรียงโพสต์ตามฟิลด์ Meta
แน่นอน WordPress ให้คุณจัดเรียงโพสต์โดยใช้ฟิลด์ที่คุณกำหนดเองได้โดยใช้ตัวเลือก 'orderby' ใน WP_Query คุณจะต้องตั้งค่า 'orderby' เป็น 'meta_value' จากนั้นตั้งค่า 'meta_key' เป็นชื่อฟิลด์ของคุณ ตามค่าเริ่มต้น วิธีนี้มีประโยชน์มากที่สุดเมื่อต้องการให้คิวรีของคุณแสดงผลตามตัวอักษรหรือเรียงลำดับตามตัวเลขเมื่อฟิลด์ของคุณเป็นตัวเลข