概要
elementor/finder/categories フィルタは、Elementorのビジュアルエディタ内でのウィジェットやテンプレートのカテゴリーをカスタマイズする際に使用されます。このフィルタを使用することで、特定のニーズに合わせたカテゴリーの追加や変更が可能になり、ユーザーがより使いやすいインターフェースを提供できます。このフィルタは、主に以下のような機能を実装する際に活用されます。
- カスタムウィジェットカテゴリーの追加
- 不要なウィジェットカテゴリーの非表示
- 特定のカテゴリーのウィジェットを強調表示
- テンプレートライブラリのカテゴリー整理
- ユーザーインターフェースのカスタマイズ
- 管理者専用のカテゴリーを設定
構文
add_filter( 'elementor/finder/categories', 'my_custom_categories' );
パラメータ
$categories: 既存のカテゴリーの配列。
戻り値
- 変更されたカテゴリーの配列。
対応バージョン
- Elementor: 2.0以上
- WordPress: 4.0以上
サンプルコード
サンプル1: カスタムカテゴリーの追加
このサンプルコードは、Elementorのカテゴリーに新しいカテゴリーを追加するものです。
function add_custom_category( $categories ) {
$categories[] = [
'title' => '新しいカテゴリー',
'slug' => 'new-category',
];
return $categories;
}
add_filter( 'elementor/finder/categories', 'add_custom_category' );
引用元: [https://developer.elementor.com/docs]
サンプル2: カテゴリーの非表示
このサンプルコードでは、特定のカテゴリーを非表示にします。
function hide_custom_category( $categories ) {
foreach ( $categories as $key => $category ) {
if ( 'old-category' === $category['slug'] ) {
unset( $categories[ $key ] );
}
}
return $categories;
}
add_filter( 'elementor/finder/categories', 'hide_custom_category' );
引用元: [https://developer.elementor.com/docs]
サンプル3: カテゴリーのラベル変更
このサンプルコードは、特定のカテゴリーのラベルを変更します。
function change_category_label( $categories ) {
foreach ( $categories as &$category ) {
if ( 'default' === $category['slug'] ) {
$category['title'] = 'デフォルトウィジェット';
}
}
return $categories;
}
add_filter( 'elementor/finder/categories', 'change_category_label' );
引用元: [https://developer.elementor.com/docs]
サンプル4: ランダムカテゴリーの追加
このコードは、ランダムにカテゴリーを追加するサンプルです。
function random_category( $categories ) {
$categories[] = [
'title' => 'ランダムカテゴリー',
'slug' => uniqid('random-'),
];
return $categories;
}
add_filter( 'elementor/finder/categories', 'random_category' );
引用元: [https://developer.elementor.com/docs]
サンプル5: 複数カテゴリーの追加
このサンプルは、複数のカテゴリーを一度に追加します。
function add_multiple_categories( $categories ) {
$new_categories = [
['title' => 'ビジネス', 'slug' => 'business'],
['title' => 'デザイン', 'slug' => 'design'],
];
return array_merge( $categories, $new_categories );
}
add_filter( 'elementor/finder/categories', 'add_multiple_categories' );
引用元: [https://developer.elementor.com/docs]
この関数のアクションでの使用可能性
| アクション | 使用例 |
|---|---|
| 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 |