ฉันยุ่งกับ REST API และติดอยู่กับสิ่งนี้: ฉันจะกรองบทความในทั้ง cat1 และ cat2 ได้อย่างไร
ในตอนนี้?categories[]=45&categories[]=50
ส่งคืนใน ID หมวดหมู่ 45 หรือ 50 ฉันจะได้รับโพสต์ใน 45 และ 50 ได้อย่างไร
ขอบคุณล่วงหน้า.
ฉันยุ่งกับ REST API และติดอยู่กับสิ่งนี้: ฉันจะกรองบทความในทั้ง cat1 และ cat2 ได้อย่างไร
ในตอนนี้?categories[]=45&categories[]=50
ส่งคืนใน ID หมวดหมู่ 45 หรือ 50 ฉันจะได้รับโพสต์ใน 45 และ 50 ได้อย่างไร
ขอบคุณล่วงหน้า.
คำตอบ:
หลายหมวดหมู่สามารถคั่นด้วยเครื่องหมายจุลภาคเช่นด้านล่าง
http://example.com/wp-json/wp/v2/posts?categories=20,30
หวังว่านี่จะช่วยได้
@Jesse ดู: WP-API / WP-API # 2990
ตั้งแต่ WP 4.7 filter
ถูกลบออกจาก WP-API
คุณต้องใช้ปลั๊กอินนี้: https://github.com/WP-API/rest-filter
คุณควรจะสามารถเข้าถึงหลายหมวดหมู่โดยใช้สิ่งต่อไปนี้:
http://YOURSITE.DEV/wp-json/wp/v2/posts?categories=45+50
หวังว่าจะช่วย!
ไชโย
ติดตั้งตัวกรองปลั๊กอินออสตินกล่าวถึง ( https://github.com/WP-API/rest-filter ) ?filter[categories]=cat_one_slug%2Bcat_two_slug
และลอง
ฉันพบว่า%2B
เป็นรหัสเทียบเท่าของ+
สัญลักษณ์
โดยปกติเราจะใช้+
สำหรับตัวดำเนินการ AND แต่น่าเสียดายที่มันถูกแปลงเป็นช่องว่างดังนั้นควรใช้%2B
แทน
ดูเหมือนจะไม่มีทางทำสิ่งนี้ใน 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
นี่คือสิ่งที่ฉันทำมันทำงานได้ดี
http://example.com/wp-json/wp/v2/articles/?_embed&categories=1,2,3,4&per_page=30
สำหรับผู้ที่ใช้ Rest API v3 มันใช้ได้กับฉัน:
http://example.com/wp-json/wc/v3/products/?category=42,43