programing

JavaScript의 Gutenberg 에디터 콘텐츠(WordPress)

mailnote 2023. 3. 27. 21:25
반응형

JavaScript의 Gutenberg 에디터 콘텐츠(WordPress)

TMCE 시절에는 편집자의 콘텐츠를 쉽게 얻을 수 있었습니다.editor.getContent()그러나 새로운 구텐베르크 에디터에서는 그 방법을 찾을 수 없습니다.

모든 에디터의 콘텐츠는 HTML(데이터베이스에 저장되는 방식)로 필요합니다.

찾았다wp.block.serialize()유망하게 들리는 방법단, (파라미터로서) 블록이 필요한 것 같습니다.그래서 막혔어요.

Gutenberg 버전 3.1부터는 다음을 시험해 보십시오.

플레인 블록 내용을 가져오려면:

var originalContent = wp.data.select( "core/editor" ).getCurrentPost().content;
var editedContent = wp.data.select( "core/editor" ).getEditedPostContent();

게시물을 렌더링하려면(블록에 표시):

wp.blocks.parse( editedContent );

다음 정보를 참조해 주십시오.window._wpGutenbergPost.content둘 다 가지고 있다raw그리고.rendered내용.지금 이 순간입니다.상황은 아마 바뀔 것이다:)

셀렉터를 사용하여 데이터를 취득할 수 있습니다.예를 들어, 구텐베르크에서 편집하고 있는 투고 제목을 갱신하려면 , 다음의 조작을 실시할 수 있습니다.

wp.data.dispatch( 'core/editor' ).editPost( { title: 'New Title' } );

https://github.com/WordPress/gutenberg/blob/v2.9.2/editor/store/actions.js 에서 액션파일을 체크하면 core/interface 네임스페이스에서 정의된 액션의 전체 목록을 볼 수 있습니다.

상세보기: https://riad.blog/2018/06/07/efficient-client-data-management-for-wordpress-plugins/

비슷한 문제가 있지만 코멘트를 할 수 없습니다.게시 제목을 설정하지만 4.5.1 현재로 제공된 답변 Flow는 내용을 처리하지 않습니다.

투고 내용을 업데이트하기 위해 단락 블록을 삽입할 수 있었습니다.코드는 다음과 같습니다.

wp.data.dispatch( 'core/editor' ).editPost( { title: 'New Title' } );
var editedContent = wp.data.select( "core/editor" ).getEditedPostContent();
var newBlock = wp.blocks.createBlock( "core/paragraph", {
    content: editedContent,
});
wp.data.dispatch( "core/editor" ).insertBlocks( newBlock );

언급URL : https://stackoverflow.com/questions/48206998/gutenberg-editor-content-in-javascript-wordpress

반응형