source

wp_insert_post()를 사용할 때 post_content 안에 구텐베르크 블록을 삽입하는 방법은?

ittop 2023. 10. 29. 19:57
반응형

wp_insert_post()를 사용할 때 post_content 안에 구텐베르크 블록을 삽입하는 방법은?

저는 PHP에서 구텐베르크 블록을 생성하고 싶습니다.

저는 현재 유튜브에서 동영상을 가져와서 각 동영상에 대한 게시물을 만드는 워드프레스 플러그인을 개발하고 있습니다.post_content 안에 유튜브 영상을 삽입할 수 있는데, Gutenberg 편집기로 게시물을 편집하면 블록으로 표시되지 않습니다.

여기 https://developer.wordpress.org/block-editor/ 에서 대부분의 "블록 편집자 핸드북"을 읽었지만 사용자 지정 블록을 만드는 방법 외에는 찾을 수 없습니다.저도 구글에서 검색해봤지만, 제가 찾은 것은 역시 커스텀 블록을 만드는 것이었습니다.그런데 post_content 안에 html comment로 Gutenberg block이 저장되어 있는데, 그 comment는 Gutenberg WYYWYG editor를 통해 js로 생성된 것 같습니다.

블록으로 게시물을 만들고 데이터베이스에서 post_content를 복사한 후 "템플릿"으로 사용할 수 있다는 것은 알고 있지만 적절한 방법은 아닌 것 같습니다.

WordPress와 함께 제공되는 블록(즉, 임베디드, 문단)을 사용하고 PHP로 post_content에 저장되는 html 주석을 생성하는 것에 대한 문서가 있습니까?그게 가능하긴 해요?

YouTube 블록을 수동으로 추가하는 경우 도구 & 옵션 메뉴(오른쪽)에서 "코드 편집기" 보기를 클릭합니다.Code Editor(코드 편집기) 보기에서 편집기가 블록을 올바르게 구문 분석하는 데 필요한 HTML을 볼 수 있습니다.

예를 들어,

<!-- wp:core-embed/youtube {"url":"https://www.youtube.com/watch?v=VIDEOID","type":"video","providerNameSlug":"youtube","className":"wp-embed-aspect-16-9 wp-has-aspect-ratio"} -->
<figure class="wp-block-embed-youtube wp-block-embed is-type-video is-provider-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
https://www.youtube.com/watch?v=VIDEOID
</div></figure>
<!-- /wp:core-embed/youtube -->

오늘 구텐베르크 블록의 내용을 프로그래밍 방식으로 업데이트해야 했습니다.

두 가지 방법을 사용했습니다.

  • parse_blocks()기존 배열을 읽기 위해 PHP의 어떤 배열로 수정할 수 있었습니다.
  • render_blocks()그런 다음 post_content에 컨텐츠를 추가합니다. 그런 다음 post 배열을 다음을 통해 저장할 수 있습니다.wp_update_post().

이 기사를 읽는 것이 도움이 되었습니다. https://www.billerickson.net/access-gutenberg-block-data/

저의 프로젝트는 블록 내의 다른 사용자 지정 게시물 유형으로 관계 accf 사용자 지정 필드를 편집하는 것이지만 프로세스는 상당히 유사해야 합니다.OP의 프로젝트 관련:어레이(parse_block) 템플릿을 생성하기 위해 첫 번째 게시물을 수동으로 생성하는 것을 제안합니다.그렇다면 이 배열을 사용자 정의하는 것은 상대적으로 사소해야 합니다.

언급URL : https://stackoverflow.com/questions/58473682/how-to-insert-gutenberg-block-inside-post-content-when-using-wp-insert-post

반응형