excerpt_remove_blocks()


WordPressのexcerpt_remove_blocks()関数は、抜粋からブロックを削除するために使用されます。ブロックエディタ(Gutenberg)で作成されたコンテンツから特定のブロックを除外したい場合に利用します。

構文

excerpt_remove_blocks( string $content );
  • $content (string) — ブロックを含む投稿コンテンツ

例1: 抜粋からすべてのブロックを削除

投稿の抜粋からすべてのブロックを削除します。

add_filter( 'the_excerpt', 'remove_blocks_from_excerpt' ); function remove_blocks_from_excerpt( $excerpt ) { return excerpt_remove_blocks( $excerpt ); }

例2: 特定のブロックのみを残す

抜粋から一部のブロックを除いて削除します。

add_filter( 'the_excerpt', 'custom_excerpt_filter' ); function custom_excerpt_filter( $excerpt ) { $excerpt = excerpt_remove_blocks( $excerpt ); $excerpt .= '<!-- wp:paragraph --><p>追加テキスト</p><!-- /wp:paragraph -->'; return $excerpt; }

例3: カスタム投稿タイプで使用

カスタム投稿タイプの抜粋からブロックを削除します。

add_filter( 'get_the_excerpt', 'remove_blocks_cpt', 10, 2 ); function remove_blocks_cpt( $excerpt, $post ) { if ( $post->post_type === 'custom_post' ) { return excerpt_remove_blocks( $excerpt ); } return $excerpt; }

例4: ショートコードと組み合わせる

抜粋処理後にショートコードを実行します。

add_filter( 'the_excerpt', 'process_excerpt_with_shortcode' ); function process_excerpt_with_shortcode( $excerpt ) { $excerpt = excerpt_remove_blocks( $excerpt ); return do_shortcode( $excerpt ); }

例5: 画像ブロックを保持

抜粋からテキストブロックのみを削除し、画像ブロックを保持します。

add_filter( 'the_excerpt', 'keep_image_blocks' ); function keep_image_blocks( $excerpt ) { $excerpt = excerpt_remove_blocks( $excerpt ); preg_match_all( '/<!-- wp:image.*?-->/', $excerpt, $matches ); return implode( '', $matches[0] ); }

例6: 複数のフィルタを適用

複数のフィルタを組み合わせて抜粋を処理します。

add_filter( 'the_excerpt', 'filter_excerpt_multistep' ); function filter_excerpt_multistep( $excerpt ) { $excerpt = excerpt_remove_blocks( $excerpt ); $excerpt = wp_strip_all_tags( $excerpt ); return substr( $excerpt, 0, 100 ); }

例7: 特定のブロックタイプを除外

特定のブロックタイプのみを抜粋から削除します。

add_filter( 'the_excerpt', 'remove_specific_blocks' ); function remove_specific_blocks( $excerpt ) { if ( has_block( 'core/quote', $excerpt ) ) { $excerpt = excerpt_remove_blocks( $excerpt ); } return $excerpt; }

注意点

  • この関数はWordPress 5.0以降でのみ使用可能です
  • ブロックエディタを使用していないコンテンツには影響しません
  • パフォーマンスに影響する可能性があるため、必要な場合のみ使用してください

関連機能: