ブロックエディタにおけるライブレンダリング

Gutenberg 2.8では、PHPを使用してサーバー上でレンダリングを行うことを可能にする<ServerSideRender>ブロックが追加されました。

サーバーサイドレンダリングはフォールバックとして意図されています。クライアントサイドレンダリングは常に優先されます(クライアントレンダリングは速く、エディタの操作がより良好です)。

  1. import { registerBlockType } from '@wordpress/blocks';
  2. import ServerSideRender from '@wordpress/server-side-render';
  3. import { useBlockProps } from '@wordpress/block-editor';
  4. registerBlockType( 'gutenberg-examples/example-dynamic', {
  5. apiVersion: 3,
  6. title: 'Example: last post',
  7. icon: 'megaphone',
  8. category: 'widgets',
  9. edit: function ( props ) {
  10. const blockProps = useBlockProps();
  11. return (
  12. <div { ...blockProps }>
  13. <ServerSideRender
  14. block="gutenberg-examples/example-dynamic"
  15. attributes={ props.attributes }
  16. />
  17. </div>
  18. );
  19. },
  20. } );

このコードはwp-server-side-renderパッケージを使用していますが、wp-dataは使用していません。PHPコード内の依存関係を更新することを確認してください。wp-scriptsを使用して依存関係を自動的にビルドすることができます(PHPコードのセットアップについては[https://github.com/WordPress/block-development-examples/tree/trunk/plugins/basic-esnext-a2ab62]の[ブロック開発例リポジトリ]を参照してください)。