wordpress rest api 의 tags 값을 확인하면 아래와 같이 tag 의 id 값을 응답 받을 수 있다.
내가 원하는 형태는 tags : [{id : 11, name: markettraders},{id : 4, name: google}] 이런 형태를 원한다. 태그의 목록을 출력하고 싶은데 tag의 id 값 밖에 없어서 추가 설정이 필요로 한다.
"tags": [
11,
4
],아래의 포스트글에는 tag name 만 추가하는 방법을 알려준다.
function ag_filter_post_json($response, $post, $context) {
$tags = wp_get_post_tags($post->ID);
$response->data['tag_names'] = [];
foreach ($tags as $tag) {
$response->data['tag_names'][] = $tag->name;
}
return $response;
}
add_filter( 'rest_prepare_post', 'ag_filter_post_json', 10, 3 );하지만 내가 원하는 형태는 id, name 이 포함되어 있는 형태여서 위의 구문을 참고하여 수정하였다.
커스텀 포스트타입의 경우 rest_prepare_post 를 rest_prepare_(custom post type name) 이런 형태로 커스텀 포스트 타입을 적어주면 된다.
add_filter( 'rest_prepare_post', 'ag_filter_post_json', 10, 3 );
function ag_filter_post_json($response, $post, $context) {
$tags = wp_get_post_tags($post->ID);
$response->data['tag'] = array();
$array_tag = array();
foreach ($tags as $tag) {
$array_tag['name'] = $tag->name;
$array_tag['id'] = $tag->term_id;
$response->data['tag'][] = $array_tag;
}
return $response;
}위 구문을 function.php 에 입력하고 rest api 주소로 요청하면 아래와 같은 형태로 응답 받을 수 있다.
"tag": [
{
"name": "aaa",
"id": 11
},
{
"name": "bbb",
"id": 4
}
],———————————————————————————————–
2021-03-08 추가
위의 구문 조금 변경하였습니다. 태그와 카테고리 텍소노미에 대해서 id, name 을 추가하였습니다.
// 포트폴리오 텍소노미(category, tags) rest api 추가
add_filter( 'rest_prepare_portfolio', 'portfolio_taxonomy_json', 10, 3 );
function portfolio_taxonomy_json($response, $post, $context)
{
$tags = wp_get_post_terms($post->ID, 'portfolio_tag');
$categories = wp_get_post_terms($post->ID, 'portfolio_category');
$response->data['portfolio_tags'] = array();
$response->data['portfolio_categories'] = array();
$array_tag = array();
$array_category = array();
foreach ($tags as $tag) {
$array_tag['name'] = $tag->name;
$array_tag['id'] = $tag->term_id;
$response->data['portfolio_tags'][] = $array_tag;
}
foreach ($categories as $category) {
$array_category['name'] = $category->name;
$array_category['id'] = $category->term_id;
$response->data['portfolio_categories'][] = $array_category;
}
return $response;
}![[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)
