Home IT/WEB advanced custom fields 에서 만든 custom field 를 wp rest api 에...

advanced custom fields 에서 만든 custom field 를 wp rest api 에 추가하는 방법

advanced custom fields 에서 만든 custom field 를 wp rest api 에 추가하는 방법에 대해서 알아보겠습니다. ACF to REST API 라는 플러그인을 설치하면 쉽게 되지만 플로그인 하나라도 줄이면 REST API 의 응답속도를 개선 시킬 수 있으니 되도록이면 사용안하는 방법으로 개발하면 좋을 거 같습니다.

inline ad

아래 구문의 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);

RECENT POSTS

[nest.js]nest.js, node.js, 프로젝트 생성 방법

Node.js 설치 Node.js의 공식 웹사이트(nodejs.org)에서 Windows용 인스톨러를 다운로드합니다. 다운로드한 인스톨러를 실행하여 설치합니다. Node Version Manager(NVM)을 사용하는 경우 nvm install node # 최신 버전 설치 nvm install 14 #...

[광주]위파크 더 센트럴 분양주택 분양안내

기본정보 공급위치: 광주광역시 서구 풍암동 10-12번지 일원 공급번호: 2023000351 공급규모: 625세대 분양/입주: 분양 2023-08-04 / 입주 2026-08 건설사: (주)호반건설 (주)라인건설 분양문의: 1670-5676 분양정보: 분양정보 자세히보기 홈페이지 주소: http://www.wepark-central.co.kr/ 모집공고문 보기 청약일정 모집공고일: 2023-08-04 청약접수: 2023-08-14...

[강원]힐스테이트 속초 분양주택 분양안내

기본정보 공급위치: 강원특별자치도 속초시 금호동 622-40 일원 공급번호: 2023000337 공급규모: 925세대 분양/입주: 분양 2023-07-21 / 입주 2026-05 건설사: 현대엔지니어링(주) 분양문의: 033-947-0925 분양정보: 분양정보 자세히보기 홈페이지 주소: http://www.hillstate-sokcho.co.kr 모집공고문 보기 청약일정 모집공고일: 2023-07-21 청약접수: 2023-07-31 ~...

GSAP와 ScrollTrigger 플러그인을 사용하여 여러 패널을 고정 시키는 방법

여러 패널 고정시키는 방법 GSAP (GreenSock Animation Platform)과 ScrollTrigger 플러그인을 사용하여 여러 패널을 스크롤 위치에 따라 고정하는 기능을 구현할 수 있습니다. <section id="section1" class="parallax__item"></section> <section id="section2"...