メタボックスをクラシックエディターのみで表示する

説明

投稿画面向けにメタボックスを使ったプラグインがあり、それがブロックエディターで意図した通りに機能しなかった。この対処方法を考える過程でエディタータイプに応じてメタボックスを出し分けできる方法が見つかったので紹介したい。

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


お勧め

site_url(2018年12月8日 更新)

string site_url( [ string $path = '' [ , string $scheme = null ] ] )
現在のブログ(サイト)のサイトURLを取得する。サイトURLは、管理者ページの「設定」-「一般」の「WordPressのアドレス(URL)」のこと。

cat_is_ancestor_of(2011年11月15日 更新)

bool cat_is_ancestor_of( mixed $cat1, mixed $cat2 )
カテゴリが子孫関係か調べる。

pings_open(2018年5月27日 更新)

bool pings_open( [ mixed $post_id = NULL ] )
投稿ページ(情報)がトラックバック・ピンバックを許可しているかを調べる。

get_theme_support(2018年10月19日 更新)

mixed get_theme_support( string $feature [ , mixed $args ] )
テーマ機能を取得する。

get_users(2017年11月27日 更新)

array get_users( [ array $args = array() ] )
ユーザー情報を取得する。