WordPress環境内にブロックの雛形を作成した状態で、同じプラグインディレクトリに複数のブロックをビルドする方法を見ていきます。
1点目のブロックをビルド
プラグインディレクトリにsrc/my-blockディレクトリを作成し、srcファルダの中身をsrc/my-blockディレクトリを移動する。@wordpress/create-blockコマンドを使用して雛形をインストールした場合は、既に次のようなフォルダ構造になっているかもれないため、2点目のブロックをビルドへ進む。
- my-block
- src
- my-block
- src
my-block.phpを編集し、ビルドディレクトリのmy-blockディレクトリを指定する
function create_block_my_block_block_init() {
register_block_type( __DIR__ . '/build/my-block' );
}
add_action( 'init', 'create_block_my_block_block_init' );
buildフォルダを削除して再ビルドする
2点目のブロックをビルド
src/my-blockディレクトリをコピーして、src/my-second-blockディレクトリへリネームする。
- my-block
- src
- my-block
- my-second-block
- src
対応するブロック名に書き換える。
- block.json
- “name”: “create-block/my-second-block”へ編集
- “title”: “My Second Block”へ編集
- index.css、style.scss
- クラス名を.wp-block-create-block-my-second-blockへ編集
my-block.phpを編集して、2点目のブロックをWordPressに登録する。
function create_block_my_block_block_init() {
register_block_type(__DIR__ . '/build/my-block');
register_block_type(__DIR__ . './build/my-second-block');
}
add_action('init', 'create_block_my_block_block_init');
複数ブロックの登録は別の記述方法でもできる。
function create_block_my_block_block_init() {
$blocks =array(
'my-block',
'my-second-block'
);
foreach($blocks as $block){
register_block_type( __DIR__ . '/build/' . $block );
}
}
add_action( 'init', 'create_block_my_block_block_init' );
register_block_type( string|WP_Block_Type $block_type, array $args = array() ): WP_Block_Type|false
block.json ファイルに保存されるメタデータを基にブロックを登録する関数
$block_type
必須。名前空間を含むブロックタイプ名、または、メタデータが定義されたJSONファイルへの絶対パス
$args
オプション。ブロックタイプの引数の配列