has_blocks()


WordPressのhas_blocks()関数は、指定されたコンテンツにブロックが含まれているかどうかをチェックするために使用されます。この関数は、Gutenbergエディタを使用して作成されたコンテンツかどうかを判定するのに役立ちます。

構文

has_blocks( string|int|WP_Post $post = null );
  • $post(string|int|WP_Post) — チェックする投稿のID、スラッグ、またはWP_Postオブジェクト。デフォルトはnullで、現在の投稿を指します。

例1: 現在の投稿にブロックが含まれているかチェック

この例では、現在の投稿にブロックが含まれているかどうかをチェックします。

<?php if ( has_blocks() ) { echo 'この投稿にはブロックが含まれています。'; } else { echo 'この投稿にはブロックが含まれていません。'; } ?>

例2: 特定の投稿にブロックが含まれているかチェック

この例では、指定された投稿IDの投稿にブロックが含まれているかどうかをチェックします。

<?php if ( has_blocks( get_the_ID() ) ) { echo 'この投稿にはブロックが含まれています。'; } else { echo 'この投稿にはブロックが含まれていません。'; } ?>

例3: カスタム投稿タイプの投稿にブロックが含まれているかチェック

この例では、カスタム投稿タイプの投稿にブロックが含まれているかどうかをチェックします。

<?php $post = get_post( get_the_ID() ); if ( has_blocks( $post ) ) { echo 'このカスタム投稿にはブロックが含まれています。'; } else { echo 'このカスタム投稿にはブロックが含まれていません。'; } ?>

例4: 特定のスラッグの投稿にブロックが含まれているかチェック

この例では、指定されたスラッグの投稿にブロックが含まれているかどうかをチェックします。

<?php $post = get_page_by_path( 'sample-post' ); if ( has_blocks( $post ) ) { echo 'この投稿にはブロックが含まれています。'; } else { echo 'この投稿にはブロックが含まれていません。'; } ?>

例5: ブロックが含まれている場合に特定のクラスを追加

この例では、ブロックが含まれている場合に特定のクラスを追加します。

<?php $post_class = has_blocks() ? 'has-blocks' : 'no-blocks'; post_class( $post_class ); ?>

例6: ブロックが含まれている場合に特定のスタイルを適用

この例では、ブロックが含まれている場合に特定のスタイルを適用します。

<?php if ( has_blocks() ) { echo '<style>.post-content { background-color: #f0f0f0; }</style>'; } ?>

例7: ブロックが含まれている場合に特定のスクリプトを読み込む

この例では、ブロックが含まれている場合に特定のスクリプトを読み込みます。

<?php if ( has_blocks() ) { wp_enqueue_script( 'custom-script', get_template_directory_uri() . '/js/custom-script.js', array(), null, true ); } ?>

例8: ブロックが含まれている場合に特定のメタデータを追加

この例では、ブロックが含まれている場合に特定のメタデータを追加します。

<?php if ( has_blocks() ) { update_post_meta( get_the_ID(), 'has_blocks', true ); } ?>

注意点:

  • has_blocks()関数は、Gutenbergエディタで作成されたコンテンツかどうかを判定するために使用されます。クラシックエディタで作成されたコンテンツには適用されません。
  • 引数に指定する投稿が存在しない場合、関数はfalseを返します。

関連機能: