REST API를 사용하여 게시할 사용자 지정 분류법 할당
내장된 WP REST API를 이용하여 투고(커스텀 투고 타입)를 작성 중입니다.이 파트를 사용하고 있습니다.다음은 새로운 투고를 작성하기 위해 제출하는 JSON의 예입니다.
{
"title": "The story of Dr Foo",
"content": "This is the story content",
"status":"publish",
"excerpt":"Dr Foo story"
}
문제는 할당해야 할 분류법도 어떻게 전달하느냐는 것입니다.누가 물어본 흔적이나 방법을 못 찾겠어요?
콘텍스트의 경우,server 1
게시물을 만들고 있으며 WP가 존재합니다.server 2
.
또한 WP 서버에서 루프오버하여 wp_set_post_terms()에 따라 분류를 설정할 수 있는 요청과 함께 긴 메타데이터를 전달하려고 시도했습니다.
그러기 위해서는 REST API를 통해1개의 투고가 작성 또는 갱신된 후 (거의) rest_insert_{$this->post_type}이 기동됩니다.
이 방법의 문제는 메타 데이터가 다음 시간까지 설정되지 않는다는 것입니다.action_rest_insert_post_type()
기능이 종료되었습니다.즉, 현재 투고 메타데이터를 취득하려고 하면 존재하지 않습니다.
function action_rest_insert_post_type( $post, $request, $true ) {
$items = get_post_meta( $post->ID); // at this point in time, returns empty array.
//wp_set_terms()
}
확인했습니다$post->ID
정상적으로 동작하고 있습니다.메타데이터가 완전히 설정되어 있지 않을 뿐입니다.
조언 부탁드립니다.
function action_rest_insert_post( $post, $request, $true ) {
$params = $request->get_json_params();
if(array_key_exists("terms", $params)) {
foreach($params["terms"] as $taxonomy => $terms) {
wp_set_post_terms($post->ID, $terms, $taxonomy);
}
}
}
add_action("rest_insert_post", "action_rest_insert_post", 10, 3);
포스트를 사용했지만, 커스텀 포스트 타입의 경우는 다르지 않습니다.그냥, 접속하는 조작을 변경해 주세요.이것은 다음과 같은 호출을 받았을 때 정상적으로 동작합니다.
{
"title": "The story of Dr Foo",
"content": "This is the story content",
"status":"publish",
"excerpt":"Dr Foo story",
"terms": {
"mytaxonomy": [ "myterm", "anotherterm" ]
}
}
POST를 통해 데이터를 전송하려면 매개 변수를 다음 주소로 전송하는 방법을 변경해야 합니다.
$params = $request->get_body_params();
데이터를 다음과 같이 전송합니다.
title=testtitle&content=testcotnent&status=publish&excerpt=testexcert&terms[mytaxonomy][]=myterm&terms[mytaxonomy][]=anotherterm
몇 시간 지나면 나도 먹히는데...여기에 솔루션을 게시하면 둘 중 하나라도 도움이 될 수 있습니다.
이것은 함수에 기반을 둔 나의 함수이다.php
트란스쿠션엔이라는 우편물
function action_rest_insert_transaktionen( $post, $request, $true ) {
$params = $request->get_json_params();
if(array_key_exists("terms", $params)) {
foreach($params["terms"] as $taxonomy => $terms) {
wp_set_object_terms($post->ID, $terms, $taxonomy, true);
}
}
}
add_action("rest_insert_transaktionen", "action_rest_insert_transaktionen", 10, 3);
그리고 그게 바로 json:
{'title': 'Test,
'status': 'publish',
'content': 'Text,
'author': '1',
'format': 'standard',
"terms": {"person": ["Test"]}
}
언급URL : https://stackoverflow.com/questions/47015522/assign-custom-taxonomy-to-post-with-rest-api
'programing' 카테고리의 다른 글
Json.net의 늘필드 무시 (0) | 2023.03.02 |
---|---|
React Hook useEffect에 종속성이 누락되었습니다. '리스트' (0) | 2023.03.02 |
php 프로세스 메모리 사용을 최적화하는 방법 (0) | 2023.03.02 |
리액트 라우터에서 링크 컴포넌트를 추가하는 Material-ui (0) | 2023.03.02 |
WordPress: 커스텀 투고 타입용 기능 (0) | 2023.02.25 |