use_block_editor_for_post()


WordPressのuse_block_editor_for_post()関数は、指定された投稿がブロックエディター(Gutenberg)を使用するかどうかを判定します。

構文

use_block_editor_for_post( $post );
  • $post (mixed) — チェック対象の投稿オブジェクト、または投稿ID。

戻り値

  • true — 投稿がブロックエディターを使用する場合。
  • false — 投稿がクラシックエディターを使用する場合。

使用例

例1: 投稿がブロックエディターを使用しているか確認

以下のコードは、特定の投稿がブロックエディターを使用しているか確認します。

<?php
if ( use_block_editor_for_post( get_the_ID() ) ) {
    echo 'この投稿はブロックエディターを使用しています。';
} else {
    echo 'この投稿はクラシックエディターを使用しています。';
}
?>

例2: 条件に基づいてエディターを切り替える

カスタム投稿タイプの場合にクラシックエディターを強制する例です。

<?php
add_filter( 'use_block_editor_for_post', function( $use_block_editor, $post ) {
    if ( 'custom_post_type' === get_post_type( $post ) ) {
        return false;
    }
    return $use_block_editor;
}, 10, 2 );
?>

例3: 投稿タイプ別のチェック

以下は投稿タイプごとにエディターを切り替える例です。

<?php
if ( use_block_editor_for_post( get_the_ID() ) && 'post' === get_post_type() ) {
    echo 'この投稿は通常の投稿でブロックエディターを使用しています。';
}
?>

例4: 投稿メタデータを使用した条件設定

投稿メタデータに基づいてエディターを制御します。

<?php
$post_id = get_the_ID();
if ( use_block_editor_for_post( $post_id ) && get_post_meta( $post_id, '_custom_meta_key', true ) ) {
    echo 'この投稿はカスタムメタデータがあり、ブロックエディターを使用しています。';
}
?>

例5: デバッグ目的のログ出力

デバッグログにブロックエディターの使用状況を記録する例です。

<?php
$post_id = get_the_ID();
if ( use_block_editor_for_post( $post_id ) ) {
    error_log( 'Post ID ' . $post_id . ' is using the block editor.' );
} else {
    error_log( 'Post ID ' . $post_id . ' is using the classic editor.' );
}
?>

注意事項

この関数はWordPressのコア機能に依存しているため、コアのアップデートにより動作が変更される可能性があります。カスタムフィルターを使用する際には慎重にテストを行ってください。


関連機能: