API WP REST: filtrer par catégorie 1 ET catégorie 2

12

Je me suis mêlé de l'API REST et je suis coincé avec ceci: comment puis-je filtrer les messages dans cat1 et cat2?

Pour l'instant, les ?categories[]=45&categories[]=50retours dans la catégorie ID 45 OU 50 - comment obtenir des publications en 45 ET 50?

Merci d'avance.

Jesse P Francis
la source
Avez-vous trouvé une solution à cela?
Corey
@Corey: Nopes. Je suppose que ce n'est pas possible, pour l'instant (j'ai vu d'autres articles de support de plug-in le prétendre) J'utilisais l'API pour une application avec Ionic, je les ai chargés séparément et les ai plutôt intersectés. Le laisser ouvert, au cas où mon apprentissage serait incomplet. A lu quelque part où le plugin est édité (pas du tout recommandé) pour y parvenir.
Jesse P Francis

Réponses:

6

Plusieurs catégories peuvent être séparées par une virgule comme ci-dessous

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

J'espère que cela t'aides

Manish Jung Thapa
la source
La demande est pour la recherche ET, cela vous donnera OU.
Tom Woodward
6

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

Depuis WP 4.7, filtera été supprimé de WP-API.

Vous devez utiliser ce plugin: https://github.com/WP-API/rest-filter

Austin Passy
la source
1
Un autre plugin github.com/bueltge/wp-rest-api-filter-items qui a testé pour une maintenance solide comprend.
bueltge
@bueltge, intéressant. J'utilise actuellement le plugin rest-api-filter-fields : github.com/svrooij/rest-api-filter-fields , qui semble faire à peu près la même chose.
Austin Passy
1

Vous devriez pouvoir accéder à plusieurs catégories en utilisant les éléments suivants:

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

J'espère que cela pourra aider!

À votre santé

Jamie Halvorson
la source
Ne semble pas fonctionner! :)
Jesse P Francis
1

Installez le plugin de filtre Austin mentionné ( https://github.com/WP-API/rest-filter ) et essayez ?filter[categories]=cat_one_slug%2Bcat_two_slug.

J'ai découvert que %2Bc'est l'équivalent en code du +symbole.

Normalement, nous utiliserions +l'opérateur AND, mais malheureusement il est converti en espace, utilisez-le à la %2Bplace.

Louis S
la source
1

Il ne semble pas y avoir de moyen de le faire dans la version actuelle de l'API. Sans utiliser de plug-in, cela peut être réalisé avec un point de terminaison personnalisé ou en utilisant la fonction de filtre de requête rest pour le type de publication spécifique.

Voici une fonction de filtre approximative qui ajoute un paramètre appelé cat_relation:

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

Ainsi, un exemple d'URL de demande serait:
http://example.com/wp-json/wp/v2/posts?categories=17,8&cat_relation=AND

Franc
la source
0

C'est ce que j'ai fait, ça marche bien.

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

Pour ceux qui utilisent Rest API v3, cela fonctionne pour moi:

http://example.com/wp-json/wc/v3/products/?category=42,43
vahid sabet
la source
Il s'agit de l'API REST WooCommerce pour les produits et les catégories de produits. La question concernait les publications et les catégories de publications avec l'API REST WordPress.
Jacob Peattie