【WordPress】カスタム投稿でブロックエディターが有効にならない場合の対処法
※本ページのリンクにはプロモーションが含まれています。
こんにちは、Ryohei(@ityryohei)です!
本記事では、WordPressのカスタム投稿でブロックエディターが有効にならない場合の対処法をご紹介しています。
WordPressにカスタム投稿を追加したんだけど、ブロックエディタが有効にならない…どうすればいいんだろう?
上記の疑問にお答えします。
では、解説していきます。カスタム投稿でブロックエディタを使うにはshow_in_restをtrueにする必要がある
カスタム投稿でブロックエディタを有効にするには、show_in_restをtrueにする必要があります。show_in_restは、カスタム投稿の WP REST APIを有効にする設定ですが、ブロックエディターを使用する場合は有効にしておく必要がある設定項目です。
カスタム投稿の追加に良く使用されるプラグインのCPT UIでは、下記の項目名で表示されています。
| REST API で表示 | デフォルト:真 |
CPT UIでは、show_in_restはデフォルトで有効になっているのでデフォルトのままご使用いただければと思います。
show_in_restの設定例
WordPressにお知らせの投稿タイプを追加します。CPT UIのコードをほとんどそのまま流用していますので、必要な行だけコピーしてご利用ください。
function register_my_cpts() {
$labels = [
"name" => __( "お知らせ" ),
"singular_name" => __( "お知らせ" ),
];
$args = [
"label" => __( "お知らせ" ),
"labels" => $labels,
"description" => "",
"public" => true,
"publicly_queryable" => true,
"show_ui" => true,
"show_in_rest" => true,
"rest_base" => "",
"rest_controller_class" => "WP_REST_Posts_Controller",
"has_archive" => true,
"show_in_menu" => true,
"show_in_nav_menus" => true,
"delete_with_user" => false,
"exclude_from_search" => false,
"capability_type" => "post",
"map_meta_cap" => true,
"hierarchical" => true,
"rewrite" => [ "slug" => "news", "with_front" => true ],
"query_var" => true,
"supports" => [ "title", "editor", "thumbnail", "custom-fields" ],
"show_in_graphql" => false,
];
register_post_type( "news", $args );
}
add_action( 'init', 'register_my_cpts' );
もしshow_in_restをtrueにしてもブロックエディタが表示されない場合は他に原因があります。Classic Editorが入っていないか、エディタに関連する設定に問題ないか、一度見直してみてください。
最後に
本記事の内容は、少し前にプラグインを使用せずにサイトを構築した際、自前のコードを使って追加したカスタム投稿でブロックエディタが有効にならなかったため、WordPressのドキュメントを参考に対応したものになります。もし自前のコードで追加したカスタム投稿でブロックエディタが使えない場合は、本記事の内容で解消されるか試してみてくださいね。
以上、WordPressのカスタム投稿でブロックエディターが有効にならない場合の対処法のご紹介でした!