このページでは、このセクションの他のドキュメントではカバーされない、投稿エディターとサイトエディターで特定の機能を無効にするさまざまな方法について説明します。
ブロックオプションの制限
特定のブロックをユーザーにまったく利用させたくない場合があります。インサーターで利用可能なブロックを制御するアプローチには2種類の方法があります。許可リストは、リストにあるブロック以外のすべてのブロックを無効にします。拒否リストは、特定のブロックの登録を解除します。
パターンディレクトリの無効化
WordPress コアにバンドルされたパターンをインサーターから完全に削除するには、functions.php
ファイルに以下を追加します。
function example_theme_support() {
remove_theme_support( 'core-block-patterns' );
}
add_action( 'after_setup_theme', 'example_theme_support' );
ブロックバリエーションの無効化
コアのいくつかのブロックは実際には、ブロックのバリエーションです。例えば、Row (横並び) ブロックや Stack (縦積み) ブロックは、実際には Group (グループ) ブロックのバリエーションです。これらの「ブロック」を無効にしたい場合は、それぞれのバリエーションを無効にします。
ブロックのバリエーションは JavaScript を使用して登録されており、無効にする場合も JavaScript を使用します。以下のコードは、Row バリエーションを無効にします。
wp.domReady( () => {
wp.blocks.unregisterBlockVariation( 'core/group', 'group-row' );
});
テーマフォルダーのルートの disable-variations.js
ファイル内に上のコードを記述したとすると、テーマの functions.php
で次のコードを使用して、このファイルをエンキューできます。
function example_disable_variations_script() {
wp_enqueue_script(
'example-disable-variations-script',
get_template_directory_uri() . '/disable-variations.js',
array( 'wp-dom-ready' ),
wp_get_theme()->get( 'Version' ),
true
);
}
add_action( 'enqueue_block_editor_assets', 'example_disable_variations_script' );
ブロックスタイルの無効化
コアブロックの中には自身のブロックスタイルを持つものがいくつかあります。例えば、画像ブロックはには丸みを帯びた画像用のブロックスタイル「rounded」があります。しかしユーザーに画像を丸めさせたくない場合や、ブロックスタイルの代わりに border-radius コントロールを使いたい場合もああります。どちらの場合も、不要なブロックスタイルは簡単に無効化できます。
ブロックバリエーションと異なりスタイルは、JavaScript でも PHP でも登録できます。スタイルを JavaScript で登録した場合は、JavaScript で無効化する必要があります。PHP で登録した場合は、どちらでもスタイルを無効にできます。すべてのコアブロックのスタイルはJavaScript で登録されています。
したがって画像ブロックの「rounded」ブロックスタイルを無効にするには、以下のコードを使用します。
wp.domReady( () => {
wp.blocks.unregisterBlockStyle( 'core/image', 'rounded' );
});
この JavaScript は上のブロックバリエーションの例と同じように、エンキューしなければなりません。PHP を使用したスタイルの登録や解除方法については、ブロックスタイルのドキュメントを参照してください。
テンプレートエディターへのアクセスの無効化
クラシックテーマでもブロックテーマでも、theme.json を使用している場合は、functions.php
ファイルに以下を追加することで、投稿やページの編集時に利用できるテンプレートエディタへのアクセスを抑止できます。
function example_theme_support() {
remove_theme_support( 'block-templates');
}
add_action( 'after_setup_theme', 'example_theme_support' );
このコードにより、投稿エディターからの新規ブロックテンプレートの作成と編集の両方が抑止されます。
コードエディターへのアクセスの無効化
コードエディターでは、ページや投稿の裏側にあるブロックマークアップを参照できます。これはパワーユーザーには便利な機能ですが、誤ってコンテンツを編集することでブロックマークアップを破壊する可能性があります。functions.php
ファイルに以下のコードを追加すると、エディターへのアクセスを制限できます。
function example_restrict_code_editor_access( $settings, $context ) {
$settings[ 'codeEditingEnabled' ] = false;
return $settings;
}
add_filter( 'block_editor_settings_all', 'example_restrict_code_editor_access', 10, 2 );
このコードはすべてのユーザーの、コードエディターへのアクセスを抑止します。必要であれば権限のチェックを追加して、特定のユーザーのアクセスを抑止できます。
RichText ブロックのフォーマットオプションの無効化
RichText をサポートするブロックには、WordPress がデフォルトで提供するフォーマットオプションが付いていきます。
フォーマットオプションを無効にするには、JavaScriptで unregisterFormatType
を使用する必要があります。以下のコードはグローバルに、Inline Image、Language、Keyboard Input、Subscript、Superscript オプションを無効にします。
wp.domReady( () => {
wp.richText.unregisterFormatType( 'core/image' );
wp.richText.unregisterFormatType( 'core/language' );
wp.richText.unregisterFormatType( 'core/keyboard' );
wp.richText.unregisterFormatType( 'core/subscript' );
wp.richText.unregisterFormatType( 'core/superscript' );
});
この JavaScript は、上のブロックバリエーションの例と同じようにエンキューする必要があります。