이 기사는 "WordPress 블록의 앞쪽 끝에 외부 API 데이터 렌더링"에 대한 이전 기사를 따릅니다. 이전 게시물에서는 외부 API를 얻는 방법을 배웠고 WordPress 웹 사이트의 프론트 엔드에서 검색된 데이터를 렌더링하는 블록과 통합합니다.
문제는 우리가 구현하는 방식으로 인해 WordPress 블록 편집기에서 데이터를 볼 수 없다는 것입니다. 다시 말해, 우리는 페이지에 블록을 삽입 할 수 있지만 미리보기를 볼 수는 없습니다. 블록은 출시 후에 만 볼 수 있습니다.
이전 게시물에서 만든 샘플 블록 플러그인을 검토하겠습니다. 이번에는 WordPress의 JavaScript를 사용하고 생태계를 반응하여 백엔드 블록 편집기에서 데이터를 얻고 렌더링합니다.
WordPress 블록에서 외부 API를 사용하는
프론트 엔드 렌더링 데이터
백엔드 렌더링 데이터 (현재 위치)
사용자 정의 설정을 만듭니다
사용자 지정 블록 설정 저장
실시간 API 데이터 사용 (곧 출시)
이전 기사의 결과
시작하기 전에 이전 게시물에서 완료 한 데모가 있습니다. 참조 할 수 있습니다. 이전 게시물에서 - 메소드를 사용하여 PHP 파일에서 속성을 사용하고 컨텐츠를 렌더링 할 수 있음을 알 수 있습니다.
이것은 동적 블록을 만들기 위해 기본 워드 프레스 또는 PHP 함수를 사용해야하는 상황에 유용합니다. 그러나 WordPress의 JavaScript 및 React (특히 JSX) 생태계를 사용하여 정적 HTML과 데이터베이스에 저장된 속성을 렌더링하려면 블록 플러그인의 및 - 기능에만 집중하면됩니다.
편집 함수는 블록 편집기에서보고 싶은 내용을 기반으로 컨텐츠를 렌더링합니다. 여기에서 대화식 반응 구성 요소를 사용할 수 있습니다. -
저장 - 함수는 프론트 엔드에서보고 싶은 내용을 기반으로 컨텐츠를 렌더링합니다. 여기서는 정기적 인 반응 구성 요소 나 후크를 사용할 수 없습니다. 데이터베이스 및 속성에 저장된 정적 HTML을 반환하는 데 사용됩니다.
-
기능은 오늘날 우리의 토론의 초점입니다. 프론트 엔드에서 대화식 구성 요소를 만들 수 있지만이를 위해서는 이전 게시물에서와 같이 파일에 수동으로 포함하고 액세스해야합니다.
그래서 우리가 이전 게시물에서 한 것과 동일한 작업을 다룰 것입니다. 그러나 이번에는 프론트 엔드 에 게시하기 전에 블록 편집기에서 미리보기를 볼 수 있습니다.
블록 속성
나는 기본 내용 (렌더링)을 산만하게하기 때문에 이전 게시물에서
함수 속성에 대한 설명을 의도적으로 생략했습니다.
우리는 단지 함수가 필요하며, 코드의 attributes
객체에서 해체하겠습니다. 이전 게시물에서 API 데이터를 를 통해 저장할 수 있도록 RapidApi 코드를 수정했습니다. 는 읽기 전용이므로 직접 수정할 수 없습니다. setAttributes
블록 속성은 상태 변수와 비슷하고 React에서는 props
가 유사하지만 React는 클라이언트에서 실행되는 반면 setAttributes()
는 게시물을 저장 한 후 WordPress 데이터베이스에 속성을 영구적으로 저장하는 데 사용됩니다. 따라서 우리가해야 할 일은 Props
로 저장 한 다음 변수의 초기 값이라고 부릅니다.
편집 함수
이전 게시물에서 사용한 HTML 코드를 복사하여 붙여 넣고 편집하여 JavaScript 배경으로 전환합니다. 이전 게시물에서 프론트 엔드 스타일과 스크립트를위한 두 개의 추가 파일을 만들었습니다. 오늘 우리의 접근 방식을 따르십시오. 이러한 파일을 만들 필요가 없습니다. 대신, 우리는 모든 것을 함수로 옮길 수 있습니다. setState
setAttributes()
전체 코드 attributes.data
````javaScript
"@WordPress/Element"에서 {usestate} 가져 오기;
내보내기 기본 기능 편집 (소품) {
const {속성, setattributes} = props;
const [apidata, setapidata] = usestate (attributes.data);
function fetchData () {
const 옵션 = {
방법 : "get",
헤더 : {
"Xapidapi-Key": "빠른 API 키",
"Xapidapi-Host": "API-Football-v1.p.rapidapi.com",
},
};
술책(
" https://www.php.cn/link/a2a750ff64f34c66249d0f7d3dd42004 ", ",",
옵션
))
.Then ((응답) = & gt; response.json ())
. ((응답) = & gt; {
NewData = {... 응답};
setattributes ({data : newData});
setapidata (newData); // 상태를 수정하기 위해 새 데이터를 사용합니다
})
.catch ((err) = & gt; console.error (err));
} <.>
useState()
반환 (
페치 데이터 {/ 버튼 데이터 수집을 유발합니다 /}
{apidata && (
{/football-rankings.php
스타일 선택기에 대한 ID 추가 /}
{/Edit
ClassName 사용 /}
순위
로고
팀 이름
gp
{/
... 기타 통계 ... /}
형태의 역사
{apidata.response [0] .League.standings [0] .map ((el) = & gt; {
// ... 테이블 데이터 렌더링 ...
})}
위 내용은 백엔드의 WordPress 블록에서 외부 API 데이터 렌더링의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!