advanced custom fields 에서 만든 custom field 를 wp rest api 에 추가하는 방법에 대해서 알아보겠습니다. ACF to REST API 라는 플러그인을 설치하면 쉽게 되지만 플로그인 하나라도 줄이면 REST API 의 응답속도를 개선 시킬 수 있으니 되도록이면 사용안하는 방법으로 개발하면 좋을 거 같습니다.
아래 구문의 rest_prepare_work 에 work는 자신이 생성한 커스텀포스트타입으로 변경하시면 됩니다. 이렇게 function.php 에 추가해주시면 ACF(advanced custom fields)에서 생성한 커스텀포스트필드를 추가할 수 있습니다.
add_filter("rest_prepare_work", function($post) {
$_data = $post->data;
$fields = get_fields($_data['id']);
foreach ($fields as $key => $value){
$_data[$key] = get_field($key, $_data['id']);
}
$post->data = $_data;
return $post;
});아래 코드처럼 키를 생성하고 원하는 값을 추가해줄 수도 있습니다.
add_filter("rest_prepare_work", 'acf_rest_prepare_post', 10, 3);
function acf_rest_prepare_post($response, $post, $request) {
$response->data['name'] = array();
$response->data['year'] = array();
$response->data['year'] = get_field('year', $post->ID);
$response->data['name'] = get_field('name', $post->ID);
return $response;
}추가해준 필드를 rest api 로 쿼리 요청시 원하는 값을 받으려면 아래와 같이 코드를 추가해주면 name으로 입력했던 값을 조회할 수 있습니다. 아래와 같은 주소로 rest api 를 요청할 수 있습니다.
http://site url/index.php/wp-json/wp/v2/work?name=홍길동
add_filter('rest_work_query', function ($args, $request) {
$name = $request->get_param('name');
if (!empty($name)) {
$args['meta_query'] = array(
'relation' => 'AND',
array(
'key' => 'name',
'value' => $name,
'compare' => 'RLIKE'
)
);
}
return $args;
}, 10, 2);![[javascript]객체의 키 중에서 숫자 타입의 값을 필터링하고 합산 javascript](https://markettraders.kr/wp-content/uploads/2021/12/javascript-218x150.jpg)













![[광주]위파크 더 센트럴 분양주택 분양안내](https://markettraders.kr/wp-content/uploads/2023/08/2023000351-218x150.png)
![[강원]힐스테이트 속초 분양주택 분양안내](https://markettraders.kr/wp-content/uploads/2023/08/20230707051118016175-218x150.jpg)
![[강원]e편한세상 원주 프리모원(1회차) 분양주택 분양안내](https://markettraders.kr/wp-content/uploads/2023/08/2023000284-218x150.jpg)
![[서울]수유 시그니티 분양주택 분양안내](https://markettraders.kr/wp-content/uploads/2023/08/apartment-218x150.jpg)
![[경기]광명 센트럴 아이파크 분양주택 분양안내](https://markettraders.kr/wp-content/uploads/2023/08/2023000303-218x150.jpg)
