block_has_support()


WordPressのblock_has_support()関数は、指定されたブロックが特定の機能をサポートしているかどうかを確認するために使用されます。この関数は、ブロックエディタの開発において、ブロックの機能を動的にチェックする際に役立ちます。

構文

block_has_support( string $block_type, string $feature, mixed $default_support = false );

引数の説明:

  • $block_type(string) — チェックするブロックタイプの名前。
  • $feature(string) — サポートを確認する機能の名前。
  • $default_support(mixed) — デフォルトのサポート値。指定されていない場合、falseが返されます。

例1: ブロックがカスタムクラスをサポートしているか確認

この例では、指定されたブロックがカスタムクラスをサポートしているかどうかを確認します。

if ( block_has_support( 'core/paragraph', 'className' ) ) { echo 'サポートされています'; }

例2: ブロックがアライメントをサポートしているか確認

この例では、ブロックがテキストアライメントをサポートしているかどうかを確認します。

if ( block_has_support( 'core/heading', 'align' ) ) { echo 'アライメントがサポートされています'; }

例3: デフォルトサポート値の使用

この例では、デフォルトのサポート値を使用して、ブロックが特定の機能をサポートしているかどうかを確認します。

$supports = block_has_support( 'core/image', 'lightbox', true ); echo $supports ? 'サポートされています' : 'サポートされていません';

例4: カスタムブロックのサポート確認

カスタムブロックが特定の機能をサポートしているかどうかを確認します。

if ( block_has_support( 'my-plugin/custom-block', 'customFeature' ) ) { echo 'カスタム機能がサポートされています'; }

例5: 複数の機能を確認

この例では、ブロックが複数の機能をサポートしているかどうかを確認します。

$supports = block_has_support( 'core/group', array( 'align', 'spacing' ) ); echo $supports ? '複数機能がサポートされています' : 'サポートされていません';

例6: 条件付きでスタイルを適用

ブロックが特定の機能をサポートしている場合にのみスタイルを適用します。

if ( block_has_support( 'core/cover', 'dimensions' ) ) { echo '<style>.wp-block-cover { height: 100%; }</style>'; }

例7: ブロックのサポート状態を動的に変更

この例では、ブロックのサポート状態を動的に変更します。

add_filter( 'block_type_metadata', function( $metadata ) { if ( block_has_support( $metadata['name'], 'customFeature' ) ) { $metadata['supports']['customFeature'] = true; } return $metadata; } );

注意点

  • この関数は、ブロックエディタのコンテキストでのみ使用されます。
  • 引数$block_type$featureは正確に指定する必要があります。
  • デフォルトのサポート値は、ブロックの設定によって上書きされる可能性があります。

関連機能: