반응형
URL 매개 변수가 있는 WordPress REST API 사용자 지정 끝점
WordPress REST API용 커스텀엔드포인트를 생성하여 파라미터를 URL로 전달하려고 합니다.
현재 엔드포인트는 다음과 같습니다.
/wp-json/v1/products/81838240219
이 경우 콜백에서 식별자 파라미터를 취득할 수 있는 엔드포인트입니다.
/wp-json/v1/products?identifier=81838240219
// Custom api endpoint test
function my_awesome_func( $data ) {
$identifier = get_query_var( 'identifier' );
return $identifier;
}
add_action( 'rest_api_init', function () {
register_rest_route( 'api/v1', '/products=(?P<id>\d+)', array(
'methods' => 'GET',
'callback' => 'my_awesome_func',
) );
} );
먼저 네임스페이스를 전달해야 합니다.register_rest_route
이것처럼.
add_action( 'rest_api_init', function () {
register_rest_route( 'namespace/v1', '/product/(?P<id>\d+)', array(
'methods' => 'GET',
'callback' => 'my_awesome_func',
) );
} );
이름 공간namespace/v1
그리고 당신의 경로는/product/{id}
다음과 같은 /timeout/v1/product/81838240219
이제 기능 내 경로를 이렇게 사용할 수 있습니다.
function my_awesome_func( $data ) {
$product_ID = $data['id'];
}
/namespace/v1/product/81838240219?name=Rob 등의 옵션을 추가해야 하는 경우
기능 안에서 이렇게 사용하세요.
function my_awesome_func( $data ) {
$product_ID = $data['id'];
$name = $data->get_param( 'name' );
}
프로세스는 매우 간단하지만 이 문서를 읽어야 합니다.
원하는 엔드포인트를 얻기 위해 제공된 답변을 약간 수정했습니다.
/wp-json/api/v1/product?identifier=81838240219
add_action( 'rest_api_init', function () {
register_rest_route( 'api/v1', '/product/', array(
'methods' => 'GET',
'callback' => 'ea_get_product_data',
) );
} );
function ea_get_product_data( $data ) {
$identifier = $data->get_param( 'identifier' );
return $identifier;
}
영숫자 파라미터를 전달하려면[a-zA-Z0-9-]
대신\d
add_action( 'rest_api_init', function () {
register_rest_route( 'namespace/v1', '/product/(?P<id>[a-zA-Z0-9-]+)', array(
'methods' => 'GET',
'callback' => 'my_awesome_func',
) );
} );
언급URL : https://stackoverflow.com/questions/53126137/wordpress-rest-api-custom-endpoint-with-url-parameter
반응형
'it-source' 카테고리의 다른 글
스프링 데이터에서의 findBy와 findOneBy의 차이점 JPA (0) | 2023.03.27 |
---|---|
Oracle 데이터베이스에 허용된 최대 연결 수를 확인하는 방법은 무엇입니까? (0) | 2023.03.27 |
여러 get 요청을 요청하는 API 가져오기 (0) | 2023.03.27 |
jquery ajax 응답을 javascript/browser에서 캐시하는 중 (0) | 2023.03.27 |
AngularJS : 서비스 속성에 대한 올바른 바인딩 방법 (0) | 2023.03.27 |