Page Builder Widget Groups
Widget groups give you a way to keep your widgets organized within the Add Widget dialog.
You can add your own groups using the siteorigin_panels_widget_dialog_tabs
filter. You need to add tabs and assign these tabs a group filter.
function mytheme_add_widget_tabs($tabs) { $tabs[] = array( 'title' => __('My Tab', 'mytheme'), 'filter' => array( 'groups' => array('mytheme') ) ); return $tabs; } add_filter('siteorigin_panels_widget_dialog_tabs', 'mytheme_add_widget_tabs', 20);
Next you just need to make sure that you assign your widgets a group. You can either do this by filtering the widgets array using siteorigin_panels_widgets
and add a groups
attribute to each of your widgets, or you can add a panels_groups
argument to the $widget_options
argument of the WP_Widget
constructor.
Filtering Page Builder Widgets
function mytheme_add_widget_icons($widgets){ $widgets['My_Widget']['groups'] = array('mytheme'); return $widgets; } add_filter('siteorigin_panels_widgets', 'mytheme_add_widget_icons');
Add a Widget to the Recommended Group
You can set widgets to the recommended group by setting the group to recommended
.
function add_my_widget_into_recommended_group( $widgets ) { $widgets['My_Widget']['groups'][] = 'recommended'; return $widgets; } add_filter( 'siteorigin_panels_widgets', 'add_my_widget_into_recommended_group', 12 );
Maintain Standard Widget Ordering
By design, SiteOrigin Widget Bundle the standard widget groups using a priority of 11
. If a priority lower or equal to 11 is used your groups may be overwritten. To prevent this, it's recommended you use a priority higher than 11. For example:
add_filter( 'siteorigin_panels_widgets', 'your_function', 12 );
Adding Multiple Widgets at once
It's possible to add multiple widgets at a time using a standard foreach
loop. No restrictions are imposed on how many widgets you can add at a time.
function set_so_widget_into_recommended_group( $widgets ) { $widgets_classes_to_recommened = array( 'My_Widget_1', 'My_Widget_2' ); foreach($widgets_classes_to_recommened as $index => $widget_class){ $widgets[$widget_class]['groups'][] = 'recommended'; } return $widgets; } add_filter( 'siteorigin_panels_widgets', 'set_so_widget_into_recommended_group', 12 );
Widgets Argument
class Foo_Widget extends WP_Widget { /** * Register widget with WordPress. */ function __construct() { parent::__construct( 'foo_widget', // Base ID __( 'Widget Title', 'text_domain' ), // Name array( 'description' => __( 'A Foo Widget', 'text_domain' ), 'panels_groups' => array('mytheme') ) ); } }