Plugin Directory

Test out the new Plugin Directory and let us know what you think.
!This plugin hasn’t 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.

Columns DIY

Simple shortcodes for div-based columns and rows. Wrap desired content in [column][/column]. Mark the end of a row with [endrow]. CSS not included.

This plugin is intended for theme developers and others who want to have full control of their column styles while still providing a quick and easy framework for adding/editing column content via WordPress's visual editor. It eliminates the need to type tedious, unmanageable chunks of HTML into the editor when specific posts or pages require a columnar layout.

That said, this plugin is not plug-and-play. It does not include any styles out-of-the-box, so if you start using the shortcodes without adding appropriate CSS rules, there probably won't be any visible changes to your content.

See the Recipes page on the GitHub wiki for some styling examples.


  • Designate each column with [column] and [/column]
  • Mark the end of a row with [endrow]


  • Includes enumerated column and row classes, allowing for per-column and -row styling. Also includes parity classes (odd/even) for striping.
  • If a user forgets to add the last [endrow] shortcode, the plugin will automatically insert a closing </div> so the site layout doesn't get broken.
  • Cleans up errant <p> and <br /> tags that result from WordPress's wpautop() function.
  • All parameter inputs are escaped for security.


Putting this into the visual editor:


This is the column of Foo.



This is the column of Bar.

[/column] [endrow]

Will result in this output:

<div class="diy-row diy-row-1 diy-row-odd">
<div class="diy-column diy-column-1 diy-column-odd">
<p>This is the column of Foo.</p>
</div><!-- end diy-column-1 -->

<div class="diy-column diy-column-2 diy-column-even">
<p>This is the column of Bar.</p>
</div><!-- end diy-column-2 -->
</div><!-- end diy-row-1 -->


The following optional parameters can be added to the [column] shortcode:

  • class (String : '') Classes for the column <div> element. Separate multiple classes with spaces.
  • rowclass (String : '') Classes for the row <div> element. Only works when included with the first [column] shortcode in a row.
  • style (String : '') Inline styles for the column <div> element.
  • rowstyle (String : '') Inline styles for the row <div> element. Only works when included with the first [column] shortcode in a row.
  • norow (Boolean : false) Set to true to omit the row wrapper <div>.


The following filter hooks can be used to alter the output of the shortcodes:

  • diy_colclass
  • diy_colstyle
  • diy_column
  • diy_rowclass
  • diy_rowstyle
  • diy_beginrow
  • diy_endrow

Requires: 2.8 or higher
Compatible up to: 3.9.16
Last Updated: 3 years ago
Active Installs: 100+


1 out of 5 stars


Got something to say? Need help?


Not enough data

0 people say it works.
0 people say it's broken.