WP REST API: กรองตามหมวดหมู่ 1 และหมวด 2


12

ฉันยุ่งกับ REST API และติดอยู่กับสิ่งนี้: ฉันจะกรองบทความในทั้ง cat1 และ cat2 ได้อย่างไร

ในตอนนี้?categories[]=45&categories[]=50ส่งคืนใน ID หมวดหมู่ 45 หรือ 50 ฉันจะได้รับโพสต์ใน 45 และ 50 ได้อย่างไร

ขอบคุณล่วงหน้า.


คุณพบวิธีแก้ปัญหาสำหรับสิ่งนี้หรือไม่?
คอเรย์

@Corey: Nopes เดาว่าเป็นไปไม่ได้ ณ ตอนนี้ (เห็นโพสต์สนับสนุนปลั๊กอินอื่นที่อ้างว่า) ฉันใช้ API สำหรับแอพที่มี Ionic ฉันโหลดมันแยกจากกันและตัดกันแทน เปิดทิ้งไว้ในกรณีที่การเรียนรู้ของฉันไม่สมบูรณ์ ได้อ่านบางส่วนที่มีการแก้ไขปลั๊กอิน (ไม่แนะนำเลย) เพื่อให้บรรลุ
Jesse P Francis

คำตอบ:


6

หลายหมวดหมู่สามารถคั่นด้วยเครื่องหมายจุลภาคเช่นด้านล่าง

http://example.com/wp-json/wp/v2/posts?categories=20,30

หวังว่านี่จะช่วยได้


คำขอสำหรับการค้นหา AND สิ่งนี้จะทำให้คุณหรือ
Tom Woodward

6

@Jesse ดู: WP-API / WP-API # 2990

ตั้งแต่ WP 4.7 filterถูกลบออกจาก WP-API

คุณต้องใช้ปลั๊กอินนี้: https://github.com/WP-API/rest-filter


1
ปลั๊กอินสำรองgithub.com/bueltge/wp-rest-api-filter-itemsที่มีการทดสอบสำหรับการบำรุงรักษาที่มั่นคงรวมถึง
bueltge

@bueltge น่าสนใจ ขณะนี้ฉันใช้ปลั๊กอินส่วนที่เหลือ api-filter-fields : github.com/svrooij/rest-api-filter-fieldsซึ่งดูเหมือนว่าจะทำในสิ่งเดียวกัน
Austin Passy

1

คุณควรจะสามารถเข้าถึงหลายหมวดหมู่โดยใช้สิ่งต่อไปนี้:

http://YOURSITE.DEV/wp-json/wp/v2/posts?categories=45+50

หวังว่าจะช่วย!

ไชโย


ดูเหมือนจะไม่ทำงาน! :)
Jesse P Francis

1

ติดตั้งตัวกรองปลั๊กอินออสตินกล่าวถึง ( https://github.com/WP-API/rest-filter ) ?filter[categories]=cat_one_slug%2Bcat_two_slugและลอง

ฉันพบว่า%2Bเป็นรหัสเทียบเท่าของ+สัญลักษณ์

โดยปกติเราจะใช้+สำหรับตัวดำเนินการ AND แต่น่าเสียดายที่มันถูกแปลงเป็นช่องว่างดังนั้นควรใช้%2Bแทน


1

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

นี่คือฟังก์ชันตัวกรองคร่าวๆที่เพิ่มพารามิเตอร์ที่เรียกว่าcat_relation:

add_filter( 'rest_post_query', function( $args, $request ) {
    if($request['cat_relation'] == 'AND') {
        $args['category__and'] = $request['categories'];
    }
    return $args;
}, 10, 2);

ดังนั้น URL คำขอตัวอย่างจะเป็น:
http://example.com/wp-json/wp/v2/posts?categories=17,8&cat_relation=AND



-1

สำหรับผู้ที่ใช้ Rest API v3 มันใช้ได้กับฉัน:

http://example.com/wp-json/wc/v3/products/?category=42,43

นี่คือ WooCommerce REST API สำหรับผลิตภัณฑ์และหมวดหมู่ผลิตภัณฑ์ คำถามเกี่ยวกับโพสต์และหมวดหมู่โพสต์ด้วย WordPress REST API
Jacob Peattie
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.