41 Responses

  1. Emyr Thomas
    Emyr Thomas Published |

    I really do hope the community get behind these. While I welcome how easy WordPress makes it to create your own content types, like you say, it really does become a pain when theme authors recreate the same incompatible functionality over and over again. You mention “ideas about standardization on other post types”. Could I therefore suggest two components I think might benefit from this approach, namely Testimonials and FAQs (Frequently Asked Questions). These seem to be fairly common use cases for custom post types.

  2. Paul
    Paul Published |

    I don’t really understand the need for this type of plugin.
    I don’t think you should use the WYSIWYG to create layout. But if you wanted the main content to be multi-column, why not use column-count CSS property?

    as for portfolio, I think that’s a great idea. I agree with Emyr that there are a few of these that are very common in modern websites and it would be great to have a “default” plugin to use.

  3. Thiago Senna
    Thiago Senna Published |


    very nice! Now I absolutely have no excuses to don’t add support to this features in my next theme.

    Just a question: Will you add bundle this features inside hybrid-core?

  4. Bruno Brant
    Bruno Brant Published |

    That’s great Justin!

    I’m just starting a project on wich the “Grid Columns Plugins” is going to be very useful.

    I’ll keep you posted about bugs and/or suggestion. How do you prefer we do that? Using comments here or using an Issue at github?


  5. Erlend Sogge Heggen
    Erlend Sogge Heggen Published |

    Sweet! I’ve tried quite the collection of portfolio themes, so I’ve got plenty of ideas for this plugin. I submitted a handful of tickets already.

    On a related side-note, I’m curious what is the best practice to responsiveness in cases like these. Most modern portfolio themes are fully responsive, elegantly transitioning from grids to single column, large thumbnail layouts on smaller screens. I love this. So how would your plugin deal with this? There are many ways to achieve responsiveness in a theme. Would you be better off just trying to make it as easy as possible to let every site owner do some tweaking to make your plugin adapt to a given theme, or could you safely include responsiveness out of the box?

  6. Daris
    Daris Published |

    I’ve built portfolio plug-ins which are specific to industries (media, publication and client) as I had problems creating a generic portfolio is that it was too complex or too minimal for example:

    Portfolio of books written – subject, type, ISBN, publish date and so on.

    Media portfolio – hierarchical but a lot more complex as you may need to credit the team behind the work (stylist, grip, make up artist, director and more) , the reason for hierarchical you may want to split pages in sections to cover studio, location etc rather than introduce yet another taxonomy. Plus it’s easier for end users to understand hierarchical pages than taxonomies when creating these pages in my experience.

    Folio of services – Probably the simplest all you need to do is credit the company and probably not hierarchical in most cases.

    Sure a lot of the information could be included in the Content area but this is a CMS so if you want to add a search by MUA/Stylist/Director /subject and so on via custom taxonomy then it breaks the standard you want to introduce.

    This is why it’s fiendishly difficult to create a portfolio plug-in because of the disparate industries and minimal overlap. Things like FAQ and Testimonials are easy in comparison.

    Because of the perceived loss of data when transitioning themes I always put CPT and Taxonomies into a ‘core’ plug-in.

  7. Norman144
    Norman144 Published |

    Hi Tod,
    I’m not sure how to use the span parameter, or how it fits in. Can you elaborate on that part of the shortcode?

    1. Norman144
      Norman144 Published |

      I meant Justin. My dyslexia saw you as Tod ..via TADlock 🙂 Hmm..no way to edit comment.

  8. Damon
    Damon Published |

    I think this is a great idea and will be using in future projects. Love the idea of standardization, and think this a very pertinent area to start. Thanks, and hopefully will be able to test and provide feedback.

  9. Bill Erickson
    Bill Erickson Published |

    I agree that functionality like this belongs in a plugin, not a theme. But commercial theme developers (like those on ThemeForest) won’t switch until the distribution of these plugins with the theme is as easy as simply including the code is now.

    You can tell your users to download these plugins to receive these features, but if your theme needs the plugin to operate correctly (ex: a portfolio theme using your portfolio plugin), you’ll be dealing with a ton of support with people who didn’t follow the instructions.

    This is why I love TGM Activation. It’s a code library you include with your theme which lets you list required and recommended plugins, either in the repo or packaged with the theme. On activation of the theme, it walks you through the process of installing them.

    I built an event theme recently and packaged all the core functionality into a functionality plugin. Without TGM Activation, a lot of users would not read the instructions, install the theme, and be disappointed with the result.

  10. Adam W. Warner
    Adam W. Warner Published |

    Daris brings up some very good points above regarding the various “types” of portfolio uses.

    Justin, would you consider a portfolio base plugin, and then additional plugin extensions that cover individual portfolio types.

    Example: I install Portfolio and I want to create Book portfolio as opposed to a Media portfolio…so I go grab the Book extension.

    This would also allow other developer to create extensions that work in conjunction with the base theme.


    p.s. I’m anxious to see this come to light because I think you’ve hit a real need here and I’m anxious to put “integrate with Portfolio plugin” on the top of our list for FooBox;)

  11. Bryan Hoffman
    Bryan Hoffman Published |

    Thank you for the Grid Columns plugin. It’s the most straight forward way to do it that I’ve seen. I’ve replaced my own column shortcode with this plugin for three reasons:

    It automatically adds first and last column classes.
    It automatically adds a container div.
    And perhaps most importantly: The attribute syntax is clear and easy to remember.

    Feature Request: It would be nice to have the ability to add a class name to both individual columns and the container div.

  12. Ooooh, Columns! | Jason Cosper
    Ooooh, Columns! | Jason Cosper at |
  13. Neil Davidson
    Neil Davidson Published |

    Honestly I think you have the right idea. I mean, another common feature is “staff” pages or “about us” with images and summaries of the staff. I’ve coded a custom post for that and it could easily be made into a plugin but the “plugin” conversion is not my area so feel free to shoot me a note if you want that code.

    Essentially your idea is perfect, Justin, with one exception – you are going solo. WordPress.com had a good idea with the JetPack plugin, though that particular plugin wasn’t optimally coded. A group of common features that can be switched on as easily as a light all packed into a single plugin.

    Open this idea up to the public, Justin, for a package, not just individual plugins. Hell, call it the “Great Tadlock Community Endeavor Plugin” for all I care!

    Again, great idea – but thinking too small JT.

  14. enej
    enej Published |

    I really like the grid shortcode plugin, I have a couple of just a suggestion on implementation.

    I think it might be better to do something like this
    first column
    Second column

    instead of the current
    [column grid=2 span=1]
    first column
    [/column] [column grid=2 span=1]
    Second column

    There are 2 reasons why I prefer the first implementation.
    Because the user doesn’t have to think about the grid and span attributes if she is doing something simple as two columns.

    Also you could do something about the not having to use ‘[/column] [column grid=2 span=1] ‘ syntax since you could do something about the added br tag since you are using the row shortcode.

    Checkout the https://github.com/ubc/tabs-shortcode for how I implemented the tab shortcode.


  15. Dhaval Jani
    Dhaval Jani Published |

    Hello Justin,

    I have tested the Portfolio plugin and here is my observation:

    For standard user these are the features required out of the box:

    1) Project url field to include project url
    2) Taxonomies for project classification (web, print, mobile to start with)
    3) Image upload field for portfolio thumbnail or getting that image through featured image field
    4) a query snippet/custom code or page template to display these portfolio items.

  16. Gregg
    Gregg Published |

    What about adding enhancements like changing the icons in the admin menu, changing the “Enter Title Here” and the 32×32 icon in the add and edit screen. When creating a custom post type I like to make it feel for the end user that ist is complete and not just using the default pin icon. Changing the “Enter Title Here” would be more appropriate for like FAQ or Testimonial where the title might be used as the question or name. Just some thoughts. 🙂

  17. Henry Martin
    Henry Martin Published |

    Thanks for sharing both plugins. I have like this lines most, “There’s no need for 22 column shortcodes to handle what one shortcode will do. I see things like [column_one_fourth], [column_two_fifths], and so on. That’s the entire reason shortcodes are allowed to have attributes.”

  18. Wallaroo
    Wallaroo Published |

    Awesome article. I look forward to using those plugins. I have a question – do you know of a plugin that allows for custom headers on certain pages?

  19. دردشة صوتية
    دردشة صوتية Published |

    Thank you dear Justin

  20. Emyr Thomas
    Emyr Thomas Published |

    I’m glad to see this trend continuing, especially within some of the more established WordPress theme shops. WooThemes today released two plugins along the same lines as your portfolio plugin: Testimonials and Features. They’re both available on GitHub.

  21. Daniel Auener
    Daniel Auener Published |

    There really should be more plugin developers adopting your views on separating the front-end (theme) and back-end (plugin) code. There are way to much plugins adding useful functionality to the admin interface but still being useless because of all the HTML/css/js/-stuff they are automatically adding to the theme. At least there should be an option to deactivate all theme output.

    Thank you for posting

  22. Leah Good
    Leah Good Published |

    I downloaded the portfolios plugin and learned a lot already from your always helpful notes. In my portfolio as a freelancer, I’d want to be able to identify something like “skills” or work areas/projects that could have projects, documents, etc., organized in any way I want–and that don’t have to look the same across the portfolio. For instance, my graphic design area should display mostly images and explanation, my writing area might have blog posts and links to publications, and my editing might have links to my clients’ publications. Finally, I’d want a way for clients to easily provide an overall testimonial or one for a specific project. To me, this means that maybe each is a separate portfolio with different post types?

    Just a thought. Thank you again for all you do; I joined Hybrid Theme’s site again as a member!

  23. Jared
    Jared Published |

    I completely agree that a “common” column shortcode would be great. I spent a lot of time achieving the same result after replacing one theme by another because they had different shortcodes. I will most likely test yours with two or three themes I am using now.

  24. jocuri cu barbi
    jocuri cu barbi Published |

    i will try right now, i see the post its very old but now its some update for that plugin? thanks

  25. dapug
    dapug Published |

    Grid Columns is not responsive. I did a simple 12 col grid, filled with with 6 items as a test (first 6 cols filled with span=1). Looks fine at full res. 6 items across the first half of the page as expected. Load up on a small screen like a phone, and the columns arranged themselves on top of each other. I expected some stacking or wrapping.

Comments are closed.