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

概要

get_block_categories フィルタは、WordPressのブロックエディターで使用される「ブロックタイプの全カテゴリーを取得する」際に役立ちます。このフィルタを使用することで、開発者はテーマやプラグインでブロックのカテゴリーをカスタマイズすることができ、自分たちのニーズに応じたブロックの整理を行うことができます。

使用される主な場面

  1. カスタムブロックカテゴリーの追加
  2. ブロックを特定のカテゴリーに分類する際の調整
  3. 不要なカテゴリーの削除
  4. カテゴリーの名前を変更するカスタマイズ
  5. ユーザーのニーズに合わせたカテゴリーの整理
  6. テーマやプラグインのデフォルトカテゴリーのカスタマイズ
  7. 特定の条件に基づいたカテゴリーの表示制御
  8. エディターのユーザーインターフェースを改善するための調整

構文

add_filter( 'get_block_categories', 'your_filter_function', 10, 2 );

パラメータ

  • $categories (array) : 既存のブロックカテゴリーの配列
  • $post (WP_Post|null) : 現在の投稿オブジェクト(場合によってはnull)

戻り値

  • array : カテゴリーの配列(変更した後のもの)

関連する関数

get_block_categories

使用可能なバージョン

このフィルタはWordPress 5.0以降で使用可能です。

コアファイルのパス

/wp-includes/block.php

サンプルコード一覧

サンプルコード 1: カスタムカテゴリーの追加

add_filter( 'get_block_categories', 'add_custom_block_category', 10, 2 );

function add_custom_block_category( $categories, $post ) {
    return array_merge(
        $categories,
        array(
            array(
                'slug'  => 'custom-category',
                'title' => __( 'Custom Category', 'text-domain' ),
            ),
        )
    );
}

このコードは、ブロックカテゴリーに「Custom Category」という新しいカテゴリーを追加しています。

サンプルコード 2: 特定の条件でのカテゴリー削除

add_filter( 'get_block_categories', 'remove_default_block_category', 10, 2 );

function remove_default_block_category( $categories, $post ) {
    foreach ( $categories as $key => $category ) {
        if ( 'common' === $category['slug'] ) {
            unset( $categories[ $key ] );
        }
    }
    return $categories;
}

このコードは、「common」カテゴリーを削除することで、ユーザーに表示されないようにしています。

サンプルコード 3: カテゴリー名を変更

add_filter( 'get_block_categories', 'change_block_category_name', 10, 2 );

function change_block_category_name( $categories, $post ) {
    foreach ( $categories as $key => $category ) {
        if ( 'widgets' === $category['slug'] ) {
            $categories[ $key ]['title'] = __( 'My Widgets', 'text-domain' );
        }
    }
    return $categories;
}

このコードは、「widgets」カテゴリーの名前を「My Widgets」に変更します。

サンプルコード 4: カテゴリーに条件を加える

add_filter( 'get_block_categories', 'conditional_block_category', 10, 2 );

function conditional_block_category( $categories, $post ) {
    if ( 'page' === $post->post_type ) {
        $categories[] = array(
            'slug'  => 'page-specific',
            'title' => __( 'Page Specific Category', 'text-domain' ),
        );
    }
    return $categories;
}

このコードは、投稿タイプが「page」の場合に特定のカテゴリーを追加します。

サンプルコード 5: カスタムカテゴリーの順序を変更

add_filter( 'get_block_categories', 'reorder_block_categories', 10, 2 );

function reorder_block_categories( $categories, $post ) {
    usort( $categories, function( $a, $b ) {
        return strcmp( $a['title'], $b['title'] );
    });
    return $categories;
}

このコードは、ブロックのカテゴリーをアルファベット順に並べ替えます。

この関数のアクションでの使用可能性

アクション 使用可能性
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

このフィルタは特定のバージョンで削除または非推奨の対象ではありません。

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


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