この記事は最後に更新してから1年以上経過しています。
説明
投稿画面向けにメタボックスを使ったプラグインがあり、それがブロックエディターで意図した通りに機能しなかった。この対処方法を考える過程でエディタータイプに応じてメタボックスを出し分けできる方法が見つかったので紹介したい。
add_meta_box関数の第7パラメータ
投稿画面のメタボックス(ウィジェット)にはブロックエディターではうまく機能しないものや不要なものがある。メタボックスは従来通りの指定では両エディターで表示されるが、エディタータイプに応じて表示が切り替え可能になっていた(「Meta Box Compatibility Flags」)。
メタボックスは add_meta_box関数で表示する。まずは関数の定義部分をおさらい。
void add_meta_box( string $id, string $title, string $callback, string $page [, string $context = 'advanced' [, string $priority = 'default' [, array $callback_args = null ] ] ] )
ポイントとなるのは第7パラメータ$callback_argsで、ここに次に示す連想配列を指定することでクラシックエディターのみで表示させることができる。
add_meta_box( 'meta_box_test', 'meta box test', 'meta_box_test_callback',
'post', 'side', 'default',
array(
// '__block_editor_compatible_meta_box' => false,
'__back_compat_meta_box' => true,
) );
キー'__back_compat_meta_box'の値にtrueを指定することで、メタボックスはクラシックエディターのみで表示される。コメント化しているキー'__block_editor_compatible_meta_box'はメタボックスがブロックエディターに対応しているかどうかを示すもの。現在のバージョン5.0.3ではここをコメント化してもクラッシックエディターのみで表示できた。
なお、試した限りではブロックエディターのみで表示する指定は見つからなかった。このパラメータについては将来のバージョンで変更される可能性が示唆されているので、リクエストしだいでは仕様が変更されるかもしれない。
最終更新 : 2019年01月15日 11:21
関連
お勧め
the_search_query(2018年5月27日 更新)
wp_parse_slug_list(2019年2月23日 更新)
get_current_user_id(2013年9月18日 更新)
wp_cache_set(2023年8月9日 更新)
translate_user_role(2019年5月13日 更新)