generate_block_asset_handle()


WordPressのgenerate_block_asset_handle()関数は、ブロックタイプのアセットハンドルを生成するために使用されます。ブロックエディター内でスクリプトやスタイルを登録する際に便利です。

構文

generate_block_asset_handle( string $block_name, string $field_name, int $index = null );

引数の説明:

  • $block_name(string) — ブロックの名前(例: ‘core/paragraph’)
  • $field_name(string) — ‘style’ または ‘script’ を指定
  • $index(int) — オプション。複数のアセットがある場合のインデックス

例1: 基本的なブロックスクリプトハンドルの生成

コアの段落ブロックのスクリプトハンドルを生成します。

$handle = generate_block_asset_handle( 'core/paragraph', 'script' );

例2: カスタムブロックのスタイルハンドル

カスタムブロックのスタイルハンドルを生成します。

$handle = generate_block_asset_handle( 'my-plugin/awesome-block', 'style' );

例3: 複数アセットがある場合のインデックス指定

2番目のスクリプトアセットのハンドルを生成します。

$handle = generate_block_asset_handle( 'core/columns', 'script', 2 );

例4: 生成したハンドルを使用してスクリプトを登録

生成したハンドルを使ってスクリプトを登録します。

wp_register_script( generate_block_asset_handle( 'core/image', 'script' ), $src, $deps, $ver );

例5: 動的にブロック名を指定

変数を使用してブロック名を動的に指定します。

$block = 'core/list'; $handle = generate_block_asset_handle( $block, 'style' );

例6: 生成したハンドルを条件分岐で使用

ハンドルが存在するか確認してから処理します。

if( wp_script_is( generate_block_asset_handle( 'core/quote', 'script' ), 'registered' ) ) { /* 処理 */ }

例7: 複数のアセットを一括生成

複数のアセットハンドルを配列で生成します。

$handles = [ generate_block_asset_handle( 'core/gallery', 'script' ), generate_block_asset_handle( 'core/gallery', 'style' ) ];

注意点:

  • この関数はWordPress 5.5以降で使用可能です
  • ブロックが登録されていない場合でもハンドルは生成されます
  • 生成されたハンドルは必ずしも登録されているとは限りません

関連機能: