포스트에 featured image 를 추가하면 wordpress rest api 에는 featured_media 에 대한 id 만 응답받을 수 있다. 이미지의 경로가 필요가 필요하여 추가적으로 넣어주었다. 이미지도 full 사이즈와 medium 사이즈가 따로 필요해서 각각 생성해주었다. 아래 구문을 function.php 에 추가해주면 된다. register_rest_field( array('portfolio') 에서 portfolio 에는 커스텀포스트타입 이름을 넣어주면 된다.
inline ad
add_action('rest_api_init', 'register_rest_images' ); function register_rest_images(){ register_rest_field( array('portfolio'), 'featured_image', array( 'get_callback' => 'get_rest_featured_image', 'update_callback' => null, 'schema' => null, ) ); register_rest_field( array('portfolio'), 'featured_thumbnail', array( 'get_callback' => 'get_rest_featured_medium_image', 'update_callback' => null, 'schema' => null, ) ); } function get_rest_featured_image( $object, $field_name, $request ) { if( $object['featured_media'] ){ $img = wp_get_attachment_image_src( $object['featured_media'], 'app-thumb' ); return $img[0]; } return false; } function get_rest_featured_medium_image( $object, $field_name, $request ) { if( $object['featured_media'] ){ $img = wp_get_attachment_image_src( $object['featured_media'], 'medium' ); return $img[0]; } return false; }
아래와 같은 결과를 확인하실 수 있습니다.
"featured_image": "https://markettraders.kr/wp-content/uploads/2021/03/photo-1604922824961-87cefb2e4b07.jpg", "featured_thumbnail": "https://markettraders.kr/wp-content/uploads/2021/03/photo-1604922824961-87cefb2e4b07-512x512.jpg",