do_block_editor_incompatible_meta_box()


WordPressのdo_block_editor_incompatible_meta_box()関数は、ブロックエディタと互換性のないメタボックスを処理するために使用されます。

構文

do_block_editor_incompatible_meta_box( $post, $metabox );

引数の説明:

  • $post(WP_Post)—現在の投稿オブジェクト。
  • $metabox(array)—メタボックスの設定を含む配列。

例1:基本的なメタボックスの追加

従来のメタボックスを投稿編集画面に追加します。

add_action('add_meta_boxes',function(){add_meta_box('old_meta','従来のメタボックス','custom_meta_callback','post','normal','high');});function custom_meta_callback($post){echo'<input type="text"name="custom_field">';}

例2:ブロックエディタで無効化

メタボックスをブロックエディタで無効にします。

add_filter('is_meta_box_allowed',function($allowed,$meta_box_id){return($meta_box_id==='old_meta')?false:$allowed;},10,2);

例3:投稿タイプごとの処理

特定の投稿タイプでのみメタボックスを表示。

add_action('add_meta_boxes',function(){if(get_post_type()==='page'){add_meta_box('page_meta','ページメタ','page_meta_callback','page','side','default');}});

例4:カスタムフィールドの保存例5:非推奨警告の表示

互換性のないメタボックスに対する警告を表示。

add_action('admin_notices',function(){global $post;if(!use_block_editor_for_post($post)){echo'<div class="notice notice-warning"><p>このメタボックスはブロックエディタと互換性がありません</p></div>';}});

例6:条件付きメタボックス表示

投稿ステータスに基づいてメタボックスを表示。

add_action('add_meta_boxes',function(){if(get_post_status(get_the_ID())!=='publish'){add_meta_box('draft_meta','下書き用メタ','draft_meta_callback','post','advanced','default');}});

例7:複数のメタボックス登録

一度に複数のメタボックスを登録。

add_action('add_meta_boxes',function(){$screens=['post','page'];foreach($screens as $screen){add_meta_box("{$screen}_meta",ucfirst($screen).'メタ',"{$screen}_meta_callback",$screen);}});

注意事項

  • この関数は主に従来のエディタとの互換性維持のために使用されます
  • ブロックエディタ対応のメタボックス開発を推奨します
  • セキュリティ対策としてデータのサニタイズを必ず実施してください

関連機能: