ฉันกำลังทำงานกับเทมเพลตหน้าคำศัพท์ taxonomy ที่กำหนดเองซึ่งเราต้องการให้รายการที่เชื่อมโยงกับคำที่เรียงตามวันที่เผยแพร่ (ฟิลด์วันที่กำหนดเอง) - และหากมีหลายรายการในวันเดียวกัน (จัดรูปแบบเช่น YYYY-MM- DD) เพื่อจัดเรียงรายการเหล่านั้นตามชื่อและในที่สุดก็เรียงลำดับตามชื่อเรื่องหากฟิลด์ที่กำหนดเองยังไม่ได้กรอก (รายการเก่า)
ดังนั้นฉันจึงลองใช้วิธีที่แตกต่างกันหลายร้อยวิธีด้วย WP_query และมันส่งคืนผลลัพธ์ส่วนใหญ่ตามที่ฉันต้องการ - แต่ในกรณีนี้มันจะคืนค่ารายการที่มี meta_key ของ publication_date เท่านั้น รายการอื่น ๆ ทั้งหมดจะถูกละเว้นและไม่แสดง ฉันลองใช้ meta_query โดยใช้ความสัมพันธ์ของ "หรือ" และเปรียบเทียบสิ่งพิมพ์_dateว่าเป็น EXISTS และไม่ใช่ EXISTS แต่ได้ผลลัพธ์ 0 รายการกลับมาให้ฉัน
นอกจากนี้ไซต์ยังคงทำงาน 3.5.2 และพวกเขาไม่ต้องการอัพเกรด
นี่คือข้อความค้นหาล่าสุดของฉันที่ทำให้ฉันได้รับโพสต์ที่มีฟิลด์ที่กำหนดเองสิ่งพิมพ์_dateตามลำดับที่ถูกต้อง:
$term = get_queried_object(); // find the term of the taxonomy page we are on
$wp_query = new WP_Query( array(
'post_type' => 'resource',
'tax_query' => array(
array(
'taxonomy' => 'resource_types',
'field' => 'slug',
'terms' => $term->name,
)),
'meta_key' => 'publication_date',
'orderby' => 'meta_value_num',
'order' => 'DESC',
'paged' => $paged,
'posts_per_page' => '10',
));
ฉันยังลองใช้ wpdb และเรียกใช้แบบสอบถาม SQL แต่ฉันไม่แน่ใจว่าจะทำสิ่งที่ฉันต้องการได้อย่างไร หากมีคนช่วยฉันได้นั่นจะยอดเยี่ยม!
ขอบคุณล่วงหน้า.
'meta_query' => array( 'relation' => 'OR', array( //check to see if date has been filled out 'key' => 'publication_date', 'compare' => '!=', 'value' => date('Y-m-d'), ), array( //if no date has been added show these posts too 'key' => 'publication_date', 'value' => date('Y-m-d'), 'compare' => 'NOT EXISTS' ) ),