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.


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


La demande est pour la recherche ET, cela vous donnera OU.
Tom Woodward


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é


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.


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


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

-1

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

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

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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.