พารามิเตอร์“ tax_query” ไม่ทำงานกับ WP_Query


17

ฉันมีประเภทโพสต์ที่กำหนดเองที่เรียกว่า 'ตอน' แนบกับ 'ตอน' ฉันมี taxonomy แบบกำหนดเองที่เรียกว่า 'video_type' ที่มีสองคำ: "โบนัสภาพ" และ "ตอน"; "ตอน" มีข้อกำหนดย่อยสองคำว่า "ซีซัน 1" และ "ซีซัน 2" (ซีซันอื่นจะถูกเพิ่มในอนาคต) ฉันต้องการคว้าเฉพาะโพสต์ล่าสุดของประเภท 'ตอน' แต่ไม่รวมโพสต์ใด ๆ จากคำว่า 'โบนัสฟุตเทจ' ด้านล่างเป็นรหัสที่ฉันใช้สำหรับสิ่งนี้:

<?php
$some_args = array(
    'tax_query' => array(
        'taxonomy' => 'video_type',
        'terms' => 'bonus-footage',
        'field' => 'slug',
        'include_children' => true,
        'operator' => 'NOT IN'
     ),
    'posts_per_page' => 1,
    'post_type' => 'episode',
);

$s = new WP_Query( $some_args );

if ( $s->have_posts() ) : $s->the_post();
    // Do something with this post.
endif;
?>

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

ฉันได้ลองตั้งค่า "tax_query" ดังนี้:

'tax_query' => array(
        'taxonomy' => 'video_type',
        'terms' => 'episode',
        'field' => 'slug',
    'include_children' => true,
        'operator' => 'IN'
),

แต่ฉันยังคงได้รับผลลัพธ์เดียวกัน

คำตอบ:


42

tax_queryพารามิเตอร์เป็นอาร์เรย์ของอาร์เรย์ไม่เพียงอาร์เรย์

นี้:

'tax_query' => array(
        'taxonomy' => 'video_type',
        'terms' => 'episode',
        'field' => 'slug',
        'include_children' => true,
        'operator' => 'IN'
),

ควรเป็นเช่นนี้แทน:

'tax_query' => array(
    array(
        'taxonomy' => 'video_type',
        'terms' => 'episode',
        'field' => 'slug',
        'include_children' => true,
        'operator' => 'IN'
    )
),

1
ขอบคุณชิป ฉันอยากรู้ว่าทำไมมันถึงสร้าง Wordpress ด้วยวิธีนี้?
Josh Farneman

3
เพื่อให้สามารถดำเนินการค้นหาภาษีหลายรายการโดยใช้ Booleans ดูรายการ Codex ที่เชื่อมโยงภายใต้ส่วน " การจัดการอนุกรมวิธานหลายรายการ "
Chip Bennett

1
ทำงานเหมือนมีเสน่ห์สำหรับฉัน! ขอบคุณชายฉันตีหัวของฉันออกจากกำแพงบนอันนี้!
Charles Blackwell

ฉันไม่สามารถหาวิธีแปลสิ่งนี้เป็นพารามิเตอร์ url และใช้งานจริงโดย WP_Query มันแค่ถูกเพิกเฉยต่อไป
realgeek
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.