我想先保留我的自定义类别。有人可以提供帮助。
请参阅我的代码,
function add_elementor_widget_categories( $elements_manager ) {
$elements_manager->add_category(
'custom-widget',
[
'title' => __( 'Custom Widget', 'elementor' ),
'icon' => 'fa fa-plug',
'active' => true,
]
);
}
add_action( 'elementor/elements/categories_registered', 'add_elementor_widget_categories' );
我用这样的东西
add_action( 'elementor/elements/categories_registered', function(\Elementor\Elements_Manager $elements_manager ) {
//add our categories
$category_prefix = 'aqb-';
$elements_manager->add_category(
$category_prefix . 'widgets',
[
'title' => 'Blah Blah',
'icon' => 'fa fa-plug',
]
);
//hack into the private $categories member and reorder it so our stuff is at the top
$reorder_cats = function() use($category_prefix){
uksort($this->categories, function($keyOne, $keyTwo) use($category_prefix){
if(substr($keyOne, 0, 4) == $category_prefix){
return -1;
}
if(substr($keyTwo, 0, 4) == $category_prefix){
return 1;
}
return 0;
});
};
$reorder_cats->call($elements_manager);
} );
基于此https://github.com/elementor/elementor/issues/7445#issuecomment-472822406
对我有用的解决方案是
function add_elementor_widget_categories( $elements_manager ) {
$categories = [];
$categories['NEWCAT'] =
[
'title' => 'NEWCAT',
'icon' => 'fa fa-plug'
];
$old_categories = $elements_manager->get_categories();
$categories = array_merge($categories, $old_categories);
$set_categories = function ( $categories ) {
$this->categories = $categories;
};
$set_categories->call( $elements_manager, $categories );
}
add_action( 'elementor/elements/categories_registered', 'add_elementor_widget_categories') ;
还可以在上面的评论线程中找到:https://github.com/elementor/elementor/issues/7445#issuecomment-692123467