Easy Widget Columns

plugin banner

Easily create fluid column layouts with your widgets.

Author:Alexis J. Villegas (profile at wordpress.org)
WordPress version required:4.6
WordPress version tested:5.5.3
Plugin version:1.2.4
Added to WordPress repository:08-03-2017
Last updated:01-08-2020
Warning! This plugin has not been updated in over 2 years. It may no longer be maintained or supported and may have compatibility issues when used with more recent versions of WordPress.
Rating, %:100
Rated by:5
Plugin URI:https://github.com/ajvillegas/easy-widget-col...
Total downloads:13 692
Active installs:700+
plugin download
Click to start download

Easy Widget Columns makes it really easy to arrange your widgets in rows of columns. It works by adding a new ‘Column width’ select option at the bottom of your widget’s form that allows you to set a width value for each widget.

You can define new rows and sub-rows of widget columns with the ‘Widget Row’ widget and the ‘Sub-Row’ widget respectively, allowing you to create complex layouts directly from within your widget area or sidebar.

Genesis Framework users, be sure to check out the Widgetized Page Template plugin, which helps you create full-page widget areas to use as a “blank canvas” with Easy Widget Columns.

Works With Most Themes

Easy Widget Columns is optimized for use with the Genesis Framework, but it is not required. It uses the Genesis Framework Column Classes to display your widgets in rows of columns. If your theme already incorporates the Genesis Framework Column Classes, or you want to manually add or edit the CSS, you can choose not to load the CSS under ‘Settings’ > ‘Widget Columns’ and rely on your theme’s stylesheet instead. This option is recommended for most Genesis users or those concerned with loading additional assets on their website.

Translation and RTL Ready

The plugin supports RTL layouts and is translation ready.

Filters for Developers

The following filters are available for you to take full control of the plugin on your themes.

  • ewc_include_widgets – This whitelist filter is used to add the width control ONLY to the specified widgets.
  • ewc_exclude_widgets – This blacklist filter is used to remove the width control from the specified widgets.
  • ewc_color_palette – This filter allows you to add a custom color palette to the color picker control in the ‘Widget Row’ widget.
  • ewc_preset_classes – This filter allows you assign preset CSS classes that display as a checkbox list in the ‘Widget Row’ widget.
  • ewc_advanced_options – This filter allows you to remove specific or all advanced options from the ‘Widget Row’ widget.

1. ewc_include_widgets / ewc_exclude_widgets

Both filters accept the widget’s ID base as parameters. Please note that you cannot use both filters at once. The ewc_include_widgets filter will always take precedence over the ewc_exclude_widgets filter and overwrite it.

The examples below demonstrate how you can implement these filters on your theme.

add_filter( 'ewc_include_widgets', 'myprefix_add_ewc_control' );
/**
 * Filter to add the EWC control to specified widgets.
 *
 * @param  array An empty array.
 * @return array An array containing the widget's ID base.
 */
function myprefix_add_ewc_control( $ewc_widgets ) {

    $ewc_widgets = array(
        'meta', // WP Meta widget
        'archives', // WP Archives widget
        'calendar', // WP Calendar widget
        'categories', // WP Categories widget
    );

    return $ewc_widgets;

}

add_filter( 'ewc_exclude_widgets', 'myprefix_remove_ewc_control' );
/**
 * Filter to remove the EWC control from specified widgets.
 *
 * @param  array An empty array.
 * @return array An array containing the widget's ID base.
 */
function myprefix_remove_ewc_control( $ewc_widgets ) {

    $ewc_widgets = array(
        'recent-comments', // WP Recent Comments widget
        'recent-posts', // WP Recent Posts widget
        'rss', // WP RSS widget
        'tag_cloud', // WP Tag Cloud widget
    );

    return $ewc_widgets;

}

2. ewc_color_palette

This filter allows you to add a custom color palette to the color picker control in the ‘Widget Row’ widget. It accepts an array of hex color values as parameters.

The example below demonstrates how you can implement this filter on your theme.

add_filter( 'ewc_color_palette', 'myprefix_ewc_color_palette' );
/**
 * Filter to edit the color palette in the color picker control.
 *
 * @param  array An empty array.
 * @return array An array containing hex color values.
 */
function myprefix_ewc_color_palette( $color_palette ) {

    $color_palette = array(
        '#252724',
        '#ce6b36',
        '#31284b',
        '#a03327',
        '#3b3e3e',
        '#67b183',
    );

    return $color_palette;

}

3. ewc_preset_classes

This filter allows you assign preset CSS classes that display as a checkbox list in the ‘Widget Row’ widget.

The following example demonstrates how you can implement this filter on your theme.

add_filter( 'ewc_preset_classes', 'myprefix_preset_classes' );
/**
 * Filter for predefining EWC Widget Row classes.
 *
 * @param  array An empty array.
 * @return array An array containing new values.
 */
function myprefix_preset_classes( $classes ) {

    $classes = array(
        'hero',
        'parallax',
        'slider',
        'content',
    );

    return $classes;

}

4. ewc_advanced_options

This filter allows you to remove specific or all advanced options from the ‘Widget Row’ widget. This can be useful for limiting design functionality on a client website (decisions, not options).

The following example demonstrates how to completely remove all advanced options.

// Remove all advanced options from the Widget Row widget.
add_filter( 'ewc_advanced_options', '__return_false' );

The example below demonstrates how to disable or enable specific advanced options. The display parameter toggles the advanced option and the active parameter determines if the panel will display open (1) or closed (0) when the Widget Row widget is first added into a widget area.

add_filter( 'ewc_advanced_options', 'myprefix_display_advanced_options' );
/**
 * Filter to remove specific advanced options from the Widget Row widget.
 *
 * @param  array An array containing default values.
 * @return array An array containing new values.
 */
function myprefix_display_advanced_options( $display ) {

    $display = array(
        'ewc_background' => array(
            'display' => true,
            'active' => 1,
        ),
        'ewc_margin' => array(
            'display' => false,
            'active' => 0,
        ),
        'ewc_padding' => array(
            'display' => false,
            'active' => 0,
        ),
        'ewc_class' => array(
            'display' => true,
            'active' => 0,
        ),
    );

    return $display;

}

Screenshots
FAQ
ChangeLog