Title: Easy Widget Columns
Author: Alexis J. Villegas
Published: <strong>mart 8, 2017</strong>
Last modified: awgust 1, 2020

---

Search plugins

![](https://ps.w.org/easy-widget-columns/assets/banner-772x250.png?rev=1610881)

This plugin **hasn’t been tested with the latest 3 major releases of WordPress**.
It may no longer be maintained or supported and may have compatibility issues when
used with more recent versions of WordPress.

![](https://ps.w.org/easy-widget-columns/assets/icon.svg?rev=1612266)

# Easy Widget Columns

 By [Alexis J. Villegas](https://profiles.wordpress.org/ajvillegas/)

[Download](https://downloads.wordpress.org/plugin/easy-widget-columns.1.2.4.zip)

 * [Details](https://tuk.wordpress.org/plugins/easy-widget-columns/#description)
 * [Reviews](https://tuk.wordpress.org/plugins/easy-widget-columns/#reviews)
 *  [Installation](https://tuk.wordpress.org/plugins/easy-widget-columns/#installation)
 * [Development](https://tuk.wordpress.org/plugins/easy-widget-columns/#developers)

 [Support](https://wordpress.org/support/plugin/easy-widget-columns/)

## Description

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](https://wordpress.org/plugins/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](https://gist.github.com/studiopress/5700003)
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](https://wordpress.org/about/philosophy/#decisions)).

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

 * [[
 * Column width control
 * [[
 * ‘Widget Row’ widget with optional advanced options
 * [[
 * A simple example of a sidebar admin view
 * [[
 * A simple example of a sidebar front-end view
 * [[
 * A complex example of a sidebar admin view used to create a custom homepage
 * [[
 * A complex example of a sidebar front-end view displaying a custom homepage
 * [[
 * Custom homepage with delineated widget rows for reference

## Installation

### Using The WordPress Dashboard

 1. Navigate to the ‘Add New’ Plugin Dashboard
 2. Click on ‘Upload Plugin’ and select `easy-widget-columns.zip` from your computer
 3. Click on ‘Install Now’
 4. Activate the plugin on the WordPress Plugins Dashboard

### Using FTP

 1. Extract `easy-widget-columns.zip` to your computer
 2. Upload the `easy-widget-columns` directory to your `wp-content/plugins` directory
 3. Activate the plugin on the WordPress Plugins Dashboard

## FAQ

### Why isn’t the plugin working?

This plugin only works with registered sidebars that have an HTML element assigned
to the `before_widget` and `after_widget` parameters. If these parameters are empty,
the plugin will not work. In addition, the `before_widget` parameter must have a
class attribute associated with it so the plugin can inject the column classes accordingly.

For more information, please refer to this page in the Codex: [Function Reference/register_sidebar](https://developer.wordpress.org/reference/functions/register_sidebar/).

### Does the plugin add any HTML markup in the front-end?

Yes, in addition to the column classes assigned to each widget, the plugin adds 
the following HTML markup around each row which is useful for clearing floats and
styling purposes:

    ```
    <div id="widget-row-{number}" class="widget-row">
        <div class="wrap">
            [my widgets...]
        </div>
    </div>
    ```

### What is the difference between ‘None’ and ‘1/1’ options?

The default value of ‘None’ has no effect on your widget’s markup while the ‘1/1’
option adds the `full-width` class and assigns the corresponding markup in the front-
end. The ‘1/1’ option can be useful when assigning only one widget per row, or multiple
full-width widgets.

### How do you create new rows of widget columns?

To define new rows, use the ‘Widget Row’ widget at the start of each new row. If
the next widget after a row has a value of ‘None’, then you’ll need to add a ‘Widget
Row’ widget before it to close the row. The only time you don’t have to use the ‘
Widget Row’ widget is when the last widget in a row is also the last widget in your
widget area or sidebar.

To define new sub-rows within a widget row use the ‘Sub-Row’ widget at the start
of each new sub-row. The Sub-Row widget only works within a widget row and has no
effect when used outside of a widget row.

**Note:** Please make sure that each widget inside each row has a ‘Column width’
value other than ‘None’ assigned to it, otherwise the HTML markup will break in 
the front-end.

## Reviews

![](https://secure.gravatar.com/avatar/d4db45ecd6f22fd2b0c3ef348dd38c4d8864dc79eb2df984ee4ce1ede47b4969?
s=60&d=retro&r=g)

### 󠀁[Excellent, easy to use plug-in](https://wordpress.org/support/topic/excellent-easy-to-use-plug-in-2/)󠁿

 [Lund](https://profiles.wordpress.org/lund/) iýul 23, 2020

I used this plug-in to fix some widget display and alignment issues with a WordPress
theme I often use. It instantly fixed the issues and it works responsively with 
the theme. It would have saved me hours of work if I had found this plug-in sooner!

![](https://secure.gravatar.com/avatar/bfc2b314768bd2cc489ccc5d15a409efbff8d2fb691ace30b74e8bd6cbf0f55f?
s=60&d=retro&r=g)

### 󠀁[What a wonderful plugin & developer](https://wordpress.org/support/topic/what-a-wonderful-plugin-developer/)󠁿

 [Anonymous User 13176105](https://profiles.wordpress.org/anonymized-13176105/) 
iýun 11, 2020

Thank you so much for sharing this – such a fantastic addition for widgets; so simple,
yet so powerful. Most appreciated.

![](https://secure.gravatar.com/avatar/da0ea7ab3807308e391090b489411e179c83b35dbdc3ecfb941c0e015330c33f?
s=60&d=retro&r=g)

### 󠀁[Useful & great with Genesis](https://wordpress.org/support/topic/useful-great-with-genesis/)󠁿

 [Gilbert Cattoire](https://profiles.wordpress.org/gilbertc/) oktýabr 2, 2018

Works like a charm. Also a useful tool to customize the Home page of a Genesis child
theme on the fly, since their layout is based on widget areas (use only with standard
areas, not those provided with preconfigured layout variations based on the number
of widgets added to these areas).

![](https://secure.gravatar.com/avatar/a063223d9f58f13bc94d0301b35a5842d372231ddd040db0b11945a8de5841b5?
s=60&d=retro&r=g)

### 󠀁[muy util](https://wordpress.org/support/topic/muy-util-71/)󠁿

 [ztvmark](https://profiles.wordpress.org/ztvmark/) oktýabr 2, 2018 1 reply

funciona con bootstrap

![](https://secure.gravatar.com/avatar/55b9ce7d3453d6c0c149cd77f4441a19bf692d968bf58b7f3dbc3cf9450c2051?
s=60&d=retro&r=g)

### 󠀁[Lightweight and works](https://wordpress.org/support/topic/lightweight-and-works-2/)󠁿

 [seothemes](https://profiles.wordpress.org/seothemes/) mart 18, 2017

Great plugin. Works well with your Widgetized Page Template plugin.

 [ Read all 5 reviews ](https://wordpress.org/support/plugin/easy-widget-columns/reviews/)

## Contributors & Developers

“Easy Widget Columns” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ Alexis J. Villegas ](https://profiles.wordpress.org/ajvillegas/)

“Easy Widget Columns” has been translated into 2 locales. Thank you to [the translators](https://translate.wordpress.org/projects/wp-plugins/easy-widget-columns/contributors)
for their contributions.

[Translate “Easy Widget Columns” into your language.](https://translate.wordpress.org/projects/wp-plugins/easy-widget-columns)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/easy-widget-columns/),
check out the [SVN repository](https://plugins.svn.wordpress.org/easy-widget-columns/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/easy-widget-columns/)
by [RSS](https://plugins.trac.wordpress.org/log/easy-widget-columns/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.2.4

 * Code and syntax fixes to ensure compatibility with latest WordPress version.
 * Added Spanish translations.

#### 1.2.3

 * Fix PHP 7.2 compatibility issue.

#### 1.2.2

 * Removed the `required` attribute from the image URL input field in the ‘Widget
   Row’ widget (originally used for styling purposes) to prevent issues when saving.

#### 1.2.1

 * Fixed bug with the widget update callback filter that was preventing widget settings
   from saving.

#### 1.2.0

 * Enhanced UI for the Widget Row advanced options.
 * Updated the `ewc_advanced_options` filter for removing specific advanced options.
 * Added the `ewc_preset_classes` filter for adding your own predefined CSS classes
   to the ‘Widget Row’ widget.
 * Added the ‘Sub-Row’ widget for creating sub-rows within a widget row allowing
   you to create more complex layouts.
 * Fixed the image upload control to use unique IDs to avoid conflict with other
   Widget Row instances.

#### 1.1.9

 * Strings in the image upload modal are now translatable.
 * Updated .pot file with the new translatable strings.

#### 1.1.8

 * Fixed a bug introduced in the last version with the ‘Widget Row’ widget that 
   caused the wrong markup to be outputted in the front end.

#### 1.1.7

 * Fixed undefined index notice when adding a ‘Widget Row’ widget.
 * Fixed ‘Column width’ control in the Customizer not displaying correctly.

#### 1.1.6

 * Fixed bug that prevented deleting plugin.

#### 1.1.5

 * Added selective refresh support for widgets in the Customizer (props to [Weston Ruter](https://profiles.wordpress.org/westonruter)).
 * Renamed the ‘Row Divider’ widget to ‘Widget Row’ widget to make its function 
   more clear.
 * You can now assign custom classes and a background image to each widget row using
   the ‘Widget Row’ widget.
 * Added the `ewc_advanced_options` filter to completely remove the advanced options
   from the ‘Widget Row’ widget.

#### 1.1.0

 * The ‘Row Divider’ widget now allows you to add basic styles to each widget row
   including background color, margin and padding.
 * Added the `ewc_color_palette` filter to edit the default color palette in the
   color picker control.
 * Widget rows are now assigned a unique ID so you can easily add your own CSS styles.
 * Removed selective refresh support for widgets in the Customizer to prevent row
   markup from breaking upon refresh.

#### 1.0.0

 * Initial release.

## Meta

 *  Version **1.2.4**
 *  Last updated **6 years ago**
 *  Active installations **400+**
 *  WordPress version ** 4.6 or higher **
 *  Tested up to **5.5.18**
 *  PHP version ** 5.6 or higher **
 *  Languages
 * [English (US)](https://wordpress.org/plugins/easy-widget-columns/), [Spanish (Chile)](https://cl.wordpress.org/plugins/easy-widget-columns/),
   and [Spanish (Spain)](https://es.wordpress.org/plugins/easy-widget-columns/).
 *  [Translate into your language](https://translate.wordpress.org/projects/wp-plugins/easy-widget-columns)
 * Tags
 * [admin](https://tuk.wordpress.org/plugins/tags/admin/)[columns](https://tuk.wordpress.org/plugins/tags/columns/)
   [layout](https://tuk.wordpress.org/plugins/tags/layout/)[widget](https://tuk.wordpress.org/plugins/tags/widget/)
 *  [Advanced View](https://tuk.wordpress.org/plugins/easy-widget-columns/advanced/)

## Ratings

 5 out of 5 stars.

 *  [  5 5-star reviews     ](https://wordpress.org/support/plugin/easy-widget-columns/reviews/?filter=5)
 *  [  0 4-star reviews     ](https://wordpress.org/support/plugin/easy-widget-columns/reviews/?filter=4)
 *  [  0 3-star reviews     ](https://wordpress.org/support/plugin/easy-widget-columns/reviews/?filter=3)
 *  [  0 2-star reviews     ](https://wordpress.org/support/plugin/easy-widget-columns/reviews/?filter=2)
 *  [  0 1-star reviews     ](https://wordpress.org/support/plugin/easy-widget-columns/reviews/?filter=1)

[Your review](https://wordpress.org/support/plugin/easy-widget-columns/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/easy-widget-columns/reviews/)

## Contributors

 *   [ Alexis J. Villegas ](https://profiles.wordpress.org/ajvillegas/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/easy-widget-columns/)