wp_pre_kses_block_attributes()


WordPressのwp_pre_kses_block_attributes()関数は、ブロック属性をKSESフィルタリング用に前処理するために使用されます。

構文

wp_pre_kses_block_attributes( string $block_content, array $allowed_html, array $allowed_protocols );

引数の説明:

  • $block_content(string)—処理対象のブロックコンテンツ
  • $allowed_html(array)—許可されたHTML要素と属性
  • $allowed_protocols(array)—許可されたプロトコルの配列

例1:基本的なブロック属性のフィルタリング

ブロックコンテンツを安全にフィルタリングします。

$filtered_content = wp_pre_kses_block_attributes( $block_content, $allowed_html, array( 'http', 'https' ) );

例2:カスタム許可HTMLの設定

特定のHTML要素のみを許可します。

$allowed = array( 'div' => array( 'class' => true ) ); echo wp_pre_kses_block_attributes( '<div class="test">内容</div>', $allowed, array() );

例3:データ属性の許可

data-*属性を許可する例。

$allowed = array( 'div' => array( 'data-id' => true ) ); wp_pre_kses_block_attributes( '<div data-id="123">', $allowed, array() );

例4:複数要素の許可設定

複数のHTML要素を許可します。

$allowed = array( 'div' => array(), 'span' => array() ); wp_pre_kses_block_attributes( '<div><span>テキスト</span></div>', $allowed, array() );

例5:プロトコル制限の適用

httpsプロトコルのみを許可します。

wp_pre_kses_block_attributes( '<a href="https://example.com">リンク</a>', array( 'a' => array( 'href' => true ) ), array( 'https' ) );

例6:ブロックコンテンツの前処理

Gutenbergブロックの前処理を行います。

add_filter( 'render_block_data', function( $parsed_block ) { $parsed_block['innerHTML'] = wp_pre_kses_block_attributes( $parsed_block['innerHTML'], $allowed_html, $allowed_protocols ); return $parsed_block; } );

例7:ショートコードとの併用

ショートコードを含むコンテンツを処理します。

$content = '[shortcode]コンテンツ[/shortcode]'; echo wp_pre_kses_block_attributes( $content, array(), array() );

注意点

  • この関数は内部処理用であり、直接呼び出す機会は限られています
  • 許可されていない属性は完全に削除されます
  • XSS対策のため、信頼できない入力に使用します

関連機能: