概要
get_block_categories
フィルタは、WordPressのブロックエディターで使用される「ブロックタイプの全カテゴリーを取得する」際に役立ちます。このフィルタを使用することで、開発者はテーマやプラグインでブロックのカテゴリーをカスタマイズすることができ、自分たちのニーズに応じたブロックの整理を行うことができます。
使用される主な場面
- カスタムブロックカテゴリーの追加
- ブロックを特定のカテゴリーに分類する際の調整
- 不要なカテゴリーの削除
- カテゴリーの名前を変更するカスタマイズ
- ユーザーのニーズに合わせたカテゴリーの整理
- テーマやプラグインのデフォルトカテゴリーのカスタマイズ
- 特定の条件に基づいたカテゴリーの表示制御
- エディターのユーザーインターフェースを改善するための調整
構文
add_filter( 'get_block_categories', 'your_filter_function', 10, 2 );
パラメータ
$categories
(array) : 既存のブロックカテゴリーの配列$post
(WP_Post|null) : 現在の投稿オブジェクト(場合によってはnull)
戻り値
- array : カテゴリーの配列(変更した後のもの)
関連する関数
使用可能なバージョン
このフィルタは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 |
このフィルタは特定のバージョンで削除または非推奨の対象ではありません。