ワードプレスのuse_block_editor_for_post_typeフィルタの使用方法・解説

概要

use_block_editor_for_post_type フィルタは、特定の投稿タイプがブロックエディター(Gutenberg)を使用するかどうかを判断するためのフィルタです。このフィルタを使用することで、特定の投稿タイプに対してブロックエディターの使用を制御することが可能です。一般的に、このフィルタは以下のような機能を実装する際によく使用されます。

  1. 特定のカスタム投稿タイプでブロックエディターを無効にする。
  2. 投稿タイプによって異なるエディターインターフェースを提供する。
  3. プラグインまたはテーマによるカスタム投稿タイプのエディター設定を調整する。
  4. ユーザーの役割に基づいてエディターを条件付きで変更する。
  5. 再利用可能なブロックを特定の投稿タイプでのみ利用可能にする。
  6. セクションやエリアごとに異なるエディタースタイルを適用する。
  7. 自由なカスタマイズを行うプラグインでのアクセシビリティの向上。
  8. 特定の条件下で旧エディターへのフォールバックを実装する。

このフィルタの構文は以下の通りです。

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;
} );

このコードは、特定の条件が整った場合に、ページ投稿のエディターを古いものに戻します。

この関数について質問する


上の計算式の答えを入力してください