반응형
구텐베르크 블록에 WordPress REST API를 사용할 때 HTML 엔티티가 디코딩되지 않습니다.
WordPress REST API에 Posts를 얻기 위해 요청을 하는 커스텀 Gutenberg 블록을 만들고 있습니다.사용하고 있다axios
REST 엔드포인트에 요청을 발행합니다.
결과가 돌아오면 Post 객체의 배열이 있고 Post의 제목을 볼 수 있지만 모두 JSON 객체에 포함되어 있습니다.title.rendered
및 HTML 엔티티를 포함합니다.
title: {
rendered: "This has a hyphen – oh dear"
}`
를 입력하려고 합니다.<SelectControl>
따라서 React를 사용할 방법이 없습니다.dangerouslySetInnerHTML
엔티티 문제를 해결할 수 있는 방법.옵션을 입력할 때 이러한 엔티티를 제거하려면 어떻게 해야 합니까?
REST 응답의 옵션을 입력하기 위해 사용하는 코드는 다음과 같습니다.
const options = response.data.map((post) => {
return {
label: post.title.rendered,
value: post.id,
};
});
당장 확실한 것은 아니지만, 실제로 Blocks API에서 사용할 수 있는 방법이 있습니다.
블록 코드 맨 위에 다음과 같이 입력합니다.
const { decodeEntities } = wp.htmlEntities;
그 후 다음과 같이 사용할 수 있습니다.
const options = response.data.map((post) => {
return {
label: decodeEntities(post.title.rendered),
value: post.id,
};
});
바주자!HTML 엔티티가 사라졌습니다.
그리고 왜 필터를 사용하지 않는가?
$post_type = "post";
add_filter( "rest_prepare_{$post_type}", 'prefix_title_entity_decode' );
function prefix_title_entity_decode( $response ) {
$data = $response->get_data();
$data['title']['rendered'] = html_entity_decode( $data['title']['rendered'] );
$response->set_data( $data );
return $response;
}
언급URL : https://stackoverflow.com/questions/52229126/html-entities-are-not-being-decoded-when-using-wordpress-rest-api-for-gutenberg
반응형
'code' 카테고리의 다른 글
요청을 사용하여 Wordpress 로그인 - Python3 (0) | 2023.04.03 |
---|---|
매끄러운 회전목마 크기가 조정되지 않음 (0) | 2023.04.03 |
MongoDB의 새로운 기능 mongo 명령을 실행할 수 없습니다. (0) | 2023.04.03 |
유닛 테스트 뷰 - 베스트 프랙티스 (0) | 2023.04.03 |
Vite 프로젝트 React TS에서 절대 경로가 작동하지 않습니다. (0) | 2023.04.03 |