Elementor 开发者文档

title: "小部件分类" post_status: publish comment_status: open taxonomy: category: - elementor-developers-docs post_tag: - Widgets - Src - Repos


小部件分类

Elementor Widget Categories

Elementor 的小部件分类用于将小部件分组管理。Elementor 初始化时,会注册多个默认分类。

只有当分类下分配有小部件时,该分类才会在部件面板中显示。

外部开发者可以创建新的分类,并在品牌专属的分类中单独展示他们的小部件。

使用小部件分类

在注册新的 Elementor 小部件时,我们会使用小部件分类。通过继承 \Elementor\Widget_Base 类,我们同时也继承了 \Elementor\Widget_Base::get_categories() 方法,该方法默认返回 general 分类。

要将小部件分配到不同的分类,我们需要重写此方法,并按以下方式返回新的分类:

```php {3-5} class Elementor_Test_Widget extends \Elementor\Widget_Base {

public function get_categories(): array {
    return [ 'basic' ];
}

}

## Default Categories

When you select which category to assign your widget to, you can select one of the default categories:

| Label           | Name                   | Package      | Description                                     |
|-----------------| ---------------------- | ------------ | ----------------------------------------------- |
| **Basic**       | `basic`                | Elementor    | Category for basic widgets                      |
| **Pro**         | `pro-elements`         | ElementorPro | Category for advanced widgets                   |
| **General**     | `general`              | Elementor    | Category for general widgets                    |
| **Site**        | `theme-elements`       | ElementorPro | Category for site & theme widgets               |
| **WooCommerce** | `woocommerce-elements` | ElementorPro | Category for WooCommerce widgets                |
| **{Custom}**    |                        | {Addons}     | Custom categories added by external developers  |
| **WordPress**   | `wordpress`            | WordPress    | Category for WordPress widgets                  |

Or you can register your own category.

## 创建新分类

Elementor 允许开发者添加新的小部件分类,用于分组自定义小部件。注册新分类需使用 `elementor/elements/categories_registered` 动作。

注意:创建新分类时,需要提供分类名称/别名、分类标题/标签以及分类图标。

```php
function add_elementor_widget_categories( $elements_manager ) {

    $elements_manager->add_category(
        'first-category',
        [
            'title' => esc_html__( 'First Category', 'textdomain' ),
            'icon' => 'fa fa-plug',
        ]
    );
    $elements_manager->add_category(
        'second-category',
        [
            'title' => esc_html__( 'Second Category', 'textdomain' ),
            'icon' => 'fa fa-plug',
        ]
    );

}
add_action( 'elementor/elements/categories_registered', 'add_elementor_widget_categories' );