Ben REST API ile karışık ve bu ile sıkışmış: Nasıl cat1 ve cat2 hem de mesajları filtre?
Şimdilik, ?categories[]=45&categories[]=50
kategori kimliği 45 VEYA 50'de geri dönüşler - 45 VE 50'de yayınları nasıl alabilirim?
Şimdiden teşekkürler.
Ben REST API ile karışık ve bu ile sıkışmış: Nasıl cat1 ve cat2 hem de mesajları filtre?
Şimdilik, ?categories[]=45&categories[]=50
kategori kimliği 45 VEYA 50'de geri dönüşler - 45 VE 50'de yayınları nasıl alabilirim?
Şimdiden teşekkürler.
Yanıtlar:
Birden fazla kategori aşağıdaki gibi virgülle ayrılabilir
http://example.com/wp-json/wp/v2/posts?categories=20,30
Bu yardımcı olur umarım
@Jesse bkz: WP-API / WP-API # 2990
WP 4.7'den filter
beri, WP-API'den kaldırıldı.
Bu eklentiyi kullanmanız gerekiyor: https://github.com/WP-API/rest-filter
Aşağıdakileri kullanarak birden fazla kategoriye erişebilmelisiniz:
http://YOURSITE.DEV/wp-json/wp/v2/posts?categories=45+50
Umarım yardımcı olur!
Şerefe
Austin'in bahsettiği filtre eklentisini ( https://github.com/WP-API/rest-filter ) kurun ve deneyin ?filter[categories]=cat_one_slug%2Bcat_two_slug
.
Bu sembolün %2B
kod eşdeğeri olduğunu öğrendim +
.
Normalde +
AND işleci için kullanırız , ancak maalesef bir boşluğa dönüştürülür, %2B
bunun yerine kullanın.
API'nin mevcut sürümünde bunu yapmanın bir yolu yok gibi görünüyor. Bir eklenti kullanmadan, özel bir uç nokta ile veya belirli posta türü için kalan sorgu filtresi işlevi kullanılarak elde edilebilir .
İşte bir parametre ekleyen kaba bir filtre işlevi cat_relation
:
add_filter( 'rest_post_query', function( $args, $request ) {
if($request['cat_relation'] == 'AND') {
$args['category__and'] = $request['categories'];
}
return $args;
}, 10, 2);
Örnek bir istek URL'si şöyle olur:
http://example.com/wp-json/wp/v2/posts?categories=17,8&cat_relation=AND
Ben de öyle yaptım, iyi çalışıyor.
http://example.com/wp-json/wp/v2/articles/?_embed&categories=1,2,3,4&per_page=30
Rest API v3 kullananlar için, Benim için çalışıyor:
http://example.com/wp-json/wc/v3/products/?category=42,43