WordPressのブロックエディタ(Gutenberg)では、さまざまなブロックが用意されていますが、全てのブロックを使わせるとデザインが崩れたり、管理が煩雑になったりします。
この記事では、使用できるブロックを個別に制御する方法を紹介します。不要なブロックを無効にして、必要なブロックだけを有効化しましょう。
使用ブロックを制御する基本コード
以下のコードを、テーマの functions.php ファイルに追加します。
function my_allowed_block_types($allowed_blocks, $editor_context) {
// 投稿タイプごとに制御したい場合の例(必要に応じて調整)
if (!empty($editor_context->post)) {
$post_type = $editor_context->post->post_type;
if ($post_type === 'post' || $post_type === 'page') {
return [
'core/paragraph', // 段落
'core/heading', // 見出し
'core/image', // 画像
'core/list', // リスト
'core/table', // テーブル
'core/buttons', // ボタン
'core/quote', // 引用
'core/separator', // 区切り
'core/group', // グループ
'core/columns', // カラム
// 必要なブロックをここに追加
];
}
}
// その他の投稿タイプはすべて許可
return $allowed_blocks;
}
add_filter('allowed_block_types_all', 'my_allowed_block_types', 10, 2);コアブロックの識別子一覧(完全版)
下記がWordPressで使用される主要なブロックの識別子一覧です。必要なものをコードにコピペして使ってください。
■ テキスト系
core/paragraph(段落)core/heading(見出し)core/list(リスト)core/quote(引用)core/code(コード)core/freeform(クラシック)core/preformatted(整形済み)core/pullquote(プルクオート)core/verse(詩)
■ メディア系
core/image(画像)core/gallery(ギャラリー)core/audio(音声)core/cover(カバー)core/file(ファイル)core/media-text(メディアと文章)core/video(動画)
■ デザイン系
core/button(ボタン)core/buttons(ボタン(複数))core/columns(カラム)core/column(カラムの中身)core/group(グループ)core/separator(区切り線)core/spacer(スペーサー)core/details(詳細ブロック)
■ ウィジェット系
core/shortcode(ショートコード)core/archives(アーカイブ)core/calendar(カレンダー)core/categories(カテゴリー)core/latest-comments(最新のコメント)core/latest-posts(最新の投稿)core/rss(RSS)core/search(検索)core/tag-cloud(タグクラウド)
■ テーマ関連ブロック(FSE用)
core/site-logocore/site-titlecore/site-taglinecore/post-titlecore/post-contentcore/post-datecore/post-featured-imagecore/post-termscore/querycore/post-templatecore/query-paginationcore/query-pagination-nextcore/query-pagination-previouscore/commentscore/comments-titlecore/comment-contentcore/comment-datecore/comment-author-namecore/comment-edit-linkcore/comment-reply-link
■ 埋め込み系(Embed)
core/embed-youtubecore/embed-twittercore/embed-facebookcore/embed-instagramcore/embed-vimeocore/embed-soundcloudcore/embed-spotifycore/embed-flickrcore/embed-wordpresscore/embed(汎用埋め込み)
補足:すべてのブロックを調べるには?
管理画面で以下のコードをブラウザの開発者ツール(Console)に入力すると、現在登録されているブロック一覧が取得できます。
wp.blocks.getBlockTypes().map(b => b.name)おわりに
ブロックエディタは便利ですが、自由すぎると逆に使いづらくなることも。ぜひ今回のコードを活用して、必要なブロックだけが使える編集環境を整えてみてください!

