概要
use_block_editor_for_post_type フィルタは、特定の投稿タイプがブロックエディター(Gutenberg)を使用するかどうかを判断するためのフィルタです。このフィルタを使用することで、特定の投稿タイプに対してブロックエディターの使用を制御することが可能です。一般的に、このフィルタは以下のような機能を実装する際によく使用されます。
- 特定のカスタム投稿タイプでブロックエディターを無効にする。
- 投稿タイプによって異なるエディターインターフェースを提供する。
- プラグインまたはテーマによるカスタム投稿タイプのエディター設定を調整する。
- ユーザーの役割に基づいてエディターを条件付きで変更する。
- 再利用可能なブロックを特定の投稿タイプでのみ利用可能にする。
- セクションやエリアごとに異なるエディタースタイルを適用する。
- 自由なカスタマイズを行うプラグインでのアクセシビリティの向上。
- 特定の条件下で旧エディターへのフォールバックを実装する。
このフィルタの構文は以下の通りです。
function my_use_block_editor_for_post_type( $use_block_editor, $post_type ) {
// 処理内容
return $use_block_editor;
}
add_filter( 'use_block_editor_for_post_type', 'my_use_block_editor_for_post_type', 10, 2 );
パラメータ
$use_block_editor(bool) – ブロックエディターを使用するかどうかのフラグ。$post_type(string) – 投稿タイプの名前。
戻り値
- (bool) – ブロックエディターの使用が許可されている場合は
true、そうでない場合はfalse。
関連する関数
use_block_editor_for_post_type フィルタの関連関数
使用可能なバージョン
WordPress 5.0以降で使用可能です。
コアファイルのパス
wp-includes/class-wp-block-editor.php
この関数のアクションでの使用可能性
| アクション | 使用例 |
|---|---|
| mu_plugin_loaded | |
| registered_post_type | 〇 |
| plugins_loaded | |
| wp_roles_init | |
| setup_theme | |
| after_setup_theme | |
| set_current_user | |
| init | |
| register_sidebar | |
| wp_loaded | |
| send_headers | |
| parse_query | |
| pre_get_posts | |
| wp | |
| template_redirect | |
| get_header | |
| wp_head |
サンプルコード
サンプルコード1 – 投稿タイプ「example」でブロックエディターを無効にする
add_filter( 'use_block_editor_for_post_type', function( $can, $post_type ) {
if ( 'example' === $post_type ) {
return false;
}
return $can;
} );
このコードは、投稿タイプ「example」でブロックエディターを無効にします。
サンプルコード2 – 投稿タイプに応じてエディターを変更
add_filter( 'use_block_editor_for_post_type', function( $can, $post_type ) {
if ( 'custom_type' === $post_type ) {
return true; // カスタム投稿タイプでブロックエディターを有効にする
}
return $can;
} );
このコードは、カスタム投稿タイプ「custom_type」でブロックエディターを有効にします。
サンプルコード3 – ユーザーの役割に基づいてエディターを制御
add_filter( 'use_block_editor_for_post_type', function( $can, $post_type ) {
if ( current_user_can( 'editor' ) && 'post' === $post_type ) {
return true; // 編集者にはブログ投稿のブロックエディターを有効に
}
return $can;
} );
このコードは、編集者役割のユーザーにはブログ投稿でブロックエディターを許可します。
サンプルコード4 – 必要に応じてブロックエディターを無効にする関数を呼び出す
add_filter( 'use_block_editor_for_post_type', 'disable_block_editor_for_post_type', 10, 2 );
function disable_block_editor_for_post_type( $can, $post_type ) {
return ( 'portfolio' === $post_type ) ? false : $can; // ポートフォリオ投稿タイプでブロックエディターを無効
}
このコードは、投稿タイプ「portfolio」でブロックエディターを無効にします。
サンプルコード5 – 同じ投稿タイプでも条件付きでエディターを変更
add_filter( 'use_block_editor_for_post_type', function( $can, $post_type ) {
if ( 'page' === $post_type && isset( $_GET['edit_mode'] ) ) {
return false; // ページ投稿を特殊な条件で古いエディターで編集する
}
return $can;
} );
このコードは、特定の条件が整った場合に、ページ投稿のエディターを古いものに戻します。