REST API를 사용하고 있는데이 문제가 발생했습니다. cat1과 cat2 모두에서 게시물을 어떻게 필터링 할 수 있습니까?
현재 ?categories[]=45&categories[]=50
카테고리 ID 45 OR 50의 반품-45 AND 50의 게시물은 어떻게 얻을 수 있습니까?
미리 감사드립니다.
REST API를 사용하고 있는데이 문제가 발생했습니다. cat1과 cat2 모두에서 게시물을 어떻게 필터링 할 수 있습니까?
현재 ?categories[]=45&categories[]=50
카테고리 ID 45 OR 50의 반품-45 AND 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
희망이 도움이됩니다!
건배
Austin이 언급 한 필터 플러그인 ( 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