インストール
モジュールをインストールします
npm install @wordpress/server-side-render --save
このパッケージは、あなたのコードがES2015+環境で実行されることを前提としています。そのような言語機能やAPIのサポートが限られているか、まったくない環境を使用している場合は、コードに@wordpress/babel-preset-default
に含まれるポリフィルを含める必要があります。
使用法
コンポーネントが受け入れるプロパティは以下に説明されています。
プロパティ
属性
サーバーサイドでレンダリングされるブロックの属性を含むオブジェクトです。
例: { displayAsDropdown: true }
, { showHierarchy: true }
など…
ブロック
サーバーサイドでレンダリングされるブロックの識別子です。
例: “core/archives”, “core/latest-comments”, “core/rss” など…
className
サーバーサイドでレンダリングされたブロックをラップするDOM要素に追加されるクラスです。
例: “my-custom-server-side-rendered”。
httpMethod
使用するHTTPリクエストメソッドで、‘GET’または‘POST’のいずれかです。デフォルトは‘GET’です。‘POST’の値は、PHPで‘rest_endpoints’がフィルタリングされていない限り、WP 5.5以前でエラーを引き起こします。‘POST’の場合、リクエストボディに属性を送信し、URLには送信しません。これにより、より大きな属性オブジェクトを許可できます。
- タイプ:
String
- 必須: いいえ
- デフォルト: ‘GET’
例:
function add_rest_method( $endpoints ) {
if ( is_wp_version_compatible( '5.5' ) ) {
return $endpoints;
}
foreach ( $endpoints as $route => $handler ) {
if ( isset( $endpoints[ $route ][0] ) ) {
$endpoints[ $route ][0]['methods'] = [ WP_REST_Server::READABLE, WP_REST_Server::CREATABLE ];
}
}
return $endpoints;
}
add_filter( 'rest_endpoints', 'add_rest_method');
skipBlockSupportAttributes
ブロックサポートによって適用された属性とスタイルプロパティを削除します。これにより、ブロックラッパーとServerSideRender
コンポーネントでのスタイルの重複を防ぎます。特定の機能がexperimentalSkipSerialization
によってHTMLマークアップへのシリアル化をスキップしても、すべての属性とスタイルプロパティは削除されます。
urlQueryArgs
リクエストURLに適用するクエリアルグメントです。
例: { post_id: 12 }
。
EmptyResponsePlaceholder
APIレスポンスが空のときにコンポーネントがレンダリングされます。コンポーネントはAPIレスポンスの値と、ServerSideRenderer
に渡されたすべてのプロパティを受け取ります。
ErrorResponsePlaceholder
APIレスポンスがエラーのときにコンポーネントがレンダリングされます。コンポーネントはAPIレスポンスの値と、ServerSideRenderer
に渡されたすべてのプロパティを受け取ります。
LoadingResponsePlaceholder
APIリクエストが処理中(ローディング状態)の間にコンポーネントがレンダリングされます。コンポーネントはAPIレスポンスの値と、ServerSideRenderer
に渡されたすべてのプロパティを受け取ります。
- タイプ:
Component
- 必須: いいえ
使用例
const MyServerSideRender = () => (
<ServerSideRender LoadingResponsePlaceholder={ MyAmazingPlaceholder } />
);
使用法
core/archivesのプレビューをレンダリングします。
import ServerSideRender from '@wordpress/server-side-render';
const MyServerSideRender = () => (
<ServerSideRender
block="core/archives"
attributes={ {
showPostCounts: true,
displayAsDropdown: false,
} }
/>
);
``````bash
const { serverSideRender: ServerSideRender } = wp;
const MyServerSideRender = () => (
<ServerSideRender
block="core/archives"
attributes={ {
showPostCounts: true,
displayAsDropdown: false,
} }
/>
);
`
出力
出力はブロックのrender_callback
関数を使用し、ブロックを定義する際に設定されます。
APIエンドポイント
ServerSideRenderの出力を取得するためのAPIエンドポイントは/wp/v2/block-renderer/:block
です。ブロックのrender_callback
メソッドを使用します。
``````bash
register_block_type(
'core/archives',
array(
'api_version' => 3,
'attributes' => array(
'showPostCounts' => array(
'type' => 'boolean',
'default' => false,
),
'displayAsDropdown' => array(
'type' => 'boolean',
'default' => false,
),
),
'render_callback' => 'render_block_core_archives',
)
);
`
このパッケージへの貢献
これはGutenbergプロジェクトの一部である個別のパッケージです。このプロジェクトはモノレポとして整理されています。特定の目的を持つ複数の自己完結型ソフトウェアパッケージで構成されています。このモノレポ内のパッケージはnpmに公開され、WordPressや他のソフトウェアプロジェクトで使用されています。
このパッケージやGutenberg全体への貢献について詳しく知りたい場合は、プロジェクトの主な貢献者ガイドをお読みください。