WordPressで記事編集画面のブロックの種類を限定する

概要

WoredPressのブロックエディタには、数多くのブロックパターンがあります。

エディタ

↑の画像に載っているのはごく一部です。

大変便利ではあるのですが、実際には全く使わないものも数多くあり、混乱を招くこともあります。

また、自作テーマを作る際には、全ブロックパターンに対応するCSSを指定するのは非常に大変です。

そこで、「利用するブロックエディタのパターンを限定する」ことが必要になります。

コードで制限する

テーマのfunctions.phpに下記を追記します。
※パスはwp-content/themes/テーマ名/functions.php

//functions.php
add_filter( 'allowed_block_types', function($allowed_block_types) {
  $allowed_block_types = array(
    // 見出し
    'core/heading',
    // 段落
    'core/paragraph',
    // リスト
    'core/list',
    'core/list-item',
    //画像
    'core/image',
    // テーブル
    'core/table',
    // スペーサー
    'core/spacer',
    // カラム
    'core/column',
    'core/columns',
    //カスタムhtml
    'core/html',
    //ショートコード
    'core/shortcode',
  );
  return $allowed_block_types;
});

上記コードにて指定したブロックのみが利用可能となります。

以下のような表示になります。

エディタ
エディタ

ずいぶんすっきりしましたね。

表示するブロックの指定方法について

先述のコードを見ると、表示するエディタが「core/ブロック名」のように指定されていることがわかります。

こちらについては、コードと対応するブロック名が公式にて紹介されていますので、下記を参照してください。

コアブロックリファレンス
これはblock-libraryパッケージに含まれるコアブロックの一覧です。取り消し線の付いた項目は、明…

管理画面から制限する

こちらの方が、おそらく一般的な方法ではないでしょうか。

コード編集することなく、ブロックの表示を限定することができます。

方法

①3点リーダー(画面右上)をクリック

②「設定」を選択

③「ブロック」を選択し、不要なブロックからチェックを外す。

↓では「画像」を非表示にしています。

エディタ設定

これで表示したいブロックのみ表示することができます。

欠点

この方法であれば、プログラミングの知識はいりません。

お手軽に設定できる点は素晴らしいのですが、欠点もあります。

それは、設定が当該ユーザのみにしか反映されないことです。

仮にユーザAでブロック表示を一部削除したとしてもユーザBには反映されません。

↓のように、ユーザごとに表示が変わってしまいます。

ユーザAの場合

テキストなしエディタ

ユーザBの場合

テキストなしエディタ

管理画面を複数ユーザが利用する可能性がある際には、混乱を招く危険があります。

そのような場合には、先述の「function.phpからブロックエディタの機能を制限する」方法をおすすめします。

参考

・WordPress公式:コアブロックリファレンス

・deep-space.blue:【WordPress】投稿タイプごとにブロックの表示非表示を切り替える

コメント

タイトルとURLをコピーしました