get_allowed_block_types()


WordPressのget_allowed_block_types()関数は、現在の投稿タイプで許可されているブロックタイプのリストを取得するために使用されます。この関数は、Gutenbergエディタで利用可能なブロックを制限する際に役立ちます。

構文

get_allowed_block_types( $post );
  • $post(WP_Post|int|null) — 投稿オブジェクトまたは投稿ID。デフォルトはnullで、現在の投稿を指します。

例1: 現在の投稿で許可されているブロックタイプを取得

この例では、現在の投稿で許可されているブロックタイプのリストを取得します。

$allowed_blocks = get_allowed_block_types( get_post() );

例2: 特定の投稿IDで許可されているブロックタイプを取得

この例では、指定された投稿IDで許可されているブロックタイプを取得します。

$allowed_blocks = get_allowed_block_types( 123 );

例3: カスタム投稿タイプで許可されているブロックタイプを取得

この例では、カスタム投稿タイプで許可されているブロックタイプを取得します。

$allowed_blocks = get_allowed_block_types( get_post( get_the_ID() ) );

例4: 許可されているブロックタイプをフィルタリング

この例では、許可されているブロックタイプをフィルタリングして、特定のブロックのみを許可します。

add_filter( 'allowed_block_types', function( $allowed_blocks ) { return array( 'core/paragraph', 'core/image' ); } );

例5: すべてのブロックタイプを無効化

この例では、すべてのブロックタイプを無効化します。

add_filter( 'allowed_block_types', '__return_empty_array' );

例6: 特定のユーザーロールに対してブロックタイプを制限

この例では、特定のユーザーロールに対してブロックタイプを制限します。

add_filter( 'allowed_block_types', function( $allowed_blocks ) { if ( ! current_user_can( 'edit_posts' ) ) { return array( 'core/paragraph' ); } return $allowed_blocks; } );

例7: カスタムブロックタイプを追加

この例では、カスタムブロックタイプを許可されているブロックタイプのリストに追加します。

add_filter( 'allowed_block_types', function( $allowed_blocks ) { $allowed_blocks[] = 'my-plugin/custom-block'; return $allowed_blocks; } );

注意点

  • この関数は、Gutenbergエディタが有効な場合にのみ動作します。
  • ブロックタイプの制限は、ユーザーエクスペリエンスに影響を与える可能性があるため、慎重に使用してください。