WP REST API: filter berdasarkan kategori 1 DAN kategori 2

12

Saya telah ikut campur dengan REST API dan saya terjebak dengan ini: Bagaimana saya bisa memfilter posting di kedua cat1 dan cat2?

Untuk saat ini, ?categories[]=45&categories[]=50kembali dalam ID kategori 45 ATAU 50 - bagaimana saya bisa mendapatkan posting dalam 45 DAN 50?

Terima kasih sebelumnya.

Jesse P Francis
sumber
Sudahkah Anda menemukan solusi untuk ini?
Corey
@Corey: Nopes. Kira itu tidak mungkin, sampai sekarang (melihat beberapa posting dukungan plugin lain mengklaim bahwa) saya menggunakan API untuk aplikasi dengan Ionic, saya memuatnya secara terpisah dan berpotongan sebagai gantinya. Membiarkannya terbuka, kalau-kalau pembelajaran saya tidak lengkap. Telah membaca di suatu tempat di mana Plugin diedit (sama sekali tidak disarankan) untuk mencapainya.
Jesse P Francis

Jawaban:

6

Beberapa kategori dapat dipisahkan dengan koma seperti di bawah ini

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

semoga ini membantu

Manish Jung Thapa
sumber
Permintaan untuk DAN pencarian, ini akan memberi Anda ATAU.
Tom Woodward
6

@Jesse lihat: WP-API / WP-API # 2990

Sejak WP 4.7, filtertelah dihapus dari WP-API.

Anda perlu menggunakan plugin ini: https://github.com/WP-API/rest-filter

Austin Passy
sumber
1
Plugin alternatif github.com/bueltge/wp-rest-api-filter-items yang memiliki pengujian untuk pemeliharaan yang solid meliputi.
bueltge
@bueltge, Menarik. Saat ini saya menggunakan plugin rest-api-filter-fields : github.com/svrooij/rest-api-filter-fields , yang tampaknya melakukan hal yang sama.
Austin Passy
1

Anda harus dapat mengakses beberapa kategori dengan menggunakan yang berikut ini:

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

Semoga itu bisa membantu!

Bersulang

Jamie Halvorson
sumber
Sepertinya tidak berfungsi! :)
Jesse P Francis
1

Instal plugin filter yang disebutkan Austin ( https://github.com/WP-API/rest-filter ) dan coba ?filter[categories]=cat_one_slug%2Bcat_two_slug.

Saya menemukan itu %2Badalah kode yang setara dengan +simbol.

Biasanya kami akan menggunakan +untuk operator AND tapi sayangnya itu akan dikonversi menjadi ruang jadi gunakan %2Bsaja.

Louis S
sumber
1

Sepertinya tidak ada cara untuk melakukan ini di versi API saat ini. Tanpa menggunakan plugin, itu dapat dicapai dengan titik akhir khusus atau dengan menggunakan fungsi filter kueri sisanya untuk jenis posting tertentu.

Inilah fungsi filter kasar yang menambahkan parameter bernama cat_relation:

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

Jadi contoh URL permintaan adalah:
http://example.com/wp-json/wp/v2/posts?categories=17,8&cat_relation=AND

jujur
sumber
0

Inilah yang saya lakukan, itu bekerja dengan baik.

http://example.com/wp-json/wp/v2/articles/?_embed&categories=1,2,3,4&per_page=30
Thavaprakash Swaminathan
sumber
-1

Bagi mereka yang menggunakan Rest API v3, Ini berfungsi untuk saya:

http://example.com/wp-json/wc/v3/products/?category=42,43
vahid sabet
sumber
Ini adalah REST API WooCommerce untuk produk dan kategori produk. Pertanyaannya adalah tentang posting dan kategori posting dengan WordPress REST API.
Jacob Peattie