WP REST API 요청 여부를 확인하시겠습니까?
요청이 API 요청인지 확인하는 가장 좋은 방법은 무엇입니까?
요구는 커스텀 API 요구일 수 있습니다.즉, 다음과 같습니다.
mysite.com/wp-json/my_namespace/my_version/my_action
API route wp-json의 유무는 물론 확인할 수 있습니다만, 그것을 체크하는 기능이 내장되어 있을 것입니다.
훅을 걸기 위해 필요합니다.
add_action('init', 'do_something_only_if_api_request');
function do_something_only_if_api_request()
{
if ( ! wp_api_request() ) {
return;
}
// do stuff
}
확인하실 수 있습니다.defined('REST_REQUEST')이 상수는 다음과 같이 정의됩니다.true에rest_api_loaded()(다른 정의 없음).
WP Rest API 개발자들과 다음과 같은 새로운 기능의 도입에 대한 논의가 있었다.is_rest_request()결국 그들은 이 상수를 추구했다.
2016년 12월 현재 REST API 문서는 엔드포인트처럼 보이지 않는 모든 것에 대해 매우 부실합니다.
다만, 몇개의 함수가 있어, 문서화가 잘 되어 있기 때문에, 파일내에서 메뉴얼을 찾을 수 있습니다.다음을 참조해 주세요.wordpress/wp-includes/rest-api.php
REST API 콜에만 액션을 추가할 경우 액션을 후크할 수 있습니다.rest_api_init다음과 같습니다.
add_action('rest_api_init', 'do_something_only_if_api_request');
function do_something_only_if_api_request($wp_rest_server)
{
// do stuff
}
자세한 내용은 PHPdoc 코멘트에서 확인할 수 있습니다.
/**
* Fires when preparing to serve an API request.
*
* Endpoint objects should be created and register their hooks on this action rather
* than another action to ensure they're only loaded when needed.
*
* @since 4.4.0
*
* @param WP_REST_Server $wp_rest_server Server object.
*/
내 경우 플러그인은 사용자가 로그인하는 페이지에 대해 wp_redirect를 수행하고 있습니다.
rest api가 호출될 경우 이를 피하고 싶습니다.
그래서 지금 쓰고 있어요.
if (! strpos( $_SERVER['REQUEST_URI'], 'wp-json')) // It's not a rest-api call
언급URL : https://stackoverflow.com/questions/41101294/check-whether-request-is-wp-rest-api-request
'programing' 카테고리의 다른 글
| git 기본 재배치 실행 취소 (0) | 2023.04.10 |
|---|---|
| JSON을 편집하기 위한 Emacs 모드 (0) | 2023.04.05 |
| jsonp with jquery (0) | 2023.04.05 |
| Woocommerce Variation ID를 얻는 방법 (0) | 2023.04.05 |
| mongo 쉘에 모든 데이터베이스를 나열하려면 어떻게 해야 합니까? (0) | 2023.04.05 |