Mobile App Refresh Campaign [Banner] 2024

Introducing Projects, our brand new Portfolio plugin for WordPress

Written by James Koster on February 19, 2014 Blog, News, Product News.


You’ve probably already noticed that our product strategy has deviated to separating features & code wherever possible, shifting our functionality into plugins, rather than bundling into each theme. Keeping everything lean makes managing the different components that make up a web site much easier for you, and for us as well. It also ensures your data is portable, which aligns with a core WordPress philosophy. Win/win/win. The release of Projects, our portfolio plugin is another big step in this direction.

Projects allows you to add simple and versatile portfolio functionality to any website. Inspired by the success of WooCommerce, Projects features a similar templating engine, high level of flexibility and extensibility whilst remaining lean and easy to use. Publishing and managing your projects online is a breeze.


  • Easily author and publish your projects using the familiar WordPress interface.
  • Include project details such as cover images, galleries, categories, client details and project URLs.
  • Display your projects using native WordPress architecture (project archives & single pages).
  • Use Widgets & Shortcodes for situational project display
  • Customise and extend Projects via a vast array of hooks,  filters & templates.
Projects display
Projects display

Theme Integration

Perhaps the best feature of Projects is how straight forward it is to integrate with your theme. You’ll be happy to know that we’ve already been working on building integration into several of our most popular themes:

  • Canvas
  • Superstore
  • The One Pager
  • Show-Off
  • Hustle
  • Function
  • Maximize
  • Upstart

Even if you’re not using a WooTheme, the chances are good that Projects will play nicely with your chosen theme out of the box. Compatibility with the default WordPress themes is built in. Integrating with a third party theme follows the WooCommerce process and is a piece of cake to set up. Full documentation on that process can be found here.

What of the portfolio functionality in current themes?

Some of our themes (like Canvas) include portfolio functionality out of the box. As explained at the top of this post, we’re moving away from this approach of bundling features in themes. Therefore, if you’re using the portfolio functionality in any of our themes, we strongly recommend that you transition to Projects as soon as an update to your theme that includes full Projects integration is released. Portfolio (and other such) functionality will eventually be removed from all of our themes in favour of integration with our Projects plugin and other feature plugins.

Go forth and publish your projects!

We’ve decided to release this plugin for free! You can download it immediately from, or from within your WordPress dashboard. The code is also hosted on a public repository over on Github. If you spot any bugs, Github is the place to report them. Documentation can be found over on our docs website.

We hope you enjoy publishing your portfolio using our Projects plugin!

Download Projects


76 Responses

  1. dgpromo
    February 19, 2014 at 2:41 pm #

    Cool !!

  2. Fery Wardiyanto
    February 19, 2014 at 3:31 pm #

    Nice one!

  3. tweedsolutions
    February 19, 2014 at 3:38 pm #

    Excellent thanks!!!

  4. Anthony Hortin
    February 19, 2014 at 3:40 pm #

    So good to see a big theme shop such as Woo taking the steps to move functionality like this into plugins rather than trying to package everything into a theme. Great stuff guys!

  5. Walt Kruhoeffer
    February 19, 2014 at 3:49 pm #

    Great stuff!

  6. Jo
    February 19, 2014 at 4:15 pm #

    Well done Woo, this is fantastic! Thank you for making it free. Now, when can we expect Stitched to be released into the wild? Waiting in anticipation…

    • Matty Cohen
      February 19, 2014 at 4:32 pm #

      Not too far off, Jo.

      We’re definitely looking at a February release, for Stitched. 🙂

      • joblogs
        February 19, 2014 at 4:41 pm #

        Thanks Matty!

  7. erlend_sh
    February 19, 2014 at 4:16 pm #

    Fantastic news! WooThemes have really been hitting their stride lately.

    Hope I can transition my Scrollider theme soon 🙂

  8. allmyhoney
    February 19, 2014 at 5:05 pm #

    Hi Guys, also nice update on canvas that has gone maybe unnoticed in this blog – super stuff as always, how does one hide the search from the primary nav in the theme options?

    • Matty Cohen
      February 19, 2014 at 5:29 pm #

      The search form is hooked on. 🙂

      This should work, in your functions.php file:

      remove_action( ‘woo_nav_inside’,’woo_nav_search’, 20 );

      If that doesn’t work, please pop a ticket in our help desk, and we’ll square that away.

      You may need to run the above code in a separate “init” hook.

      • allmyhoney
        February 19, 2014 at 9:22 pm #

        Thank you kindly Matty sir 😉

      • 46digital
        February 24, 2014 at 1:46 pm #

        Hey Matty

        Easy enough to do with code but would be nice to have an option to easily switch this off too 🙂

        • 46digital
          February 24, 2014 at 1:58 pm #

          Above code doesn’t work btw.

  9. Henrik
    February 19, 2014 at 5:10 pm #

    I am happy to hear about this. But at the same time I wish to ask something.

    With the “meet our team” plugin you released sometime ago you had very much “woo_team_member” and such in the markup. But for your own theme this markup is not there. If I wanted to use Testimonals, Meet the Team and now this Project plugin would I have loads and loads of “woo_plugin_name_here” in the sourcecode? It feels weird that having a plugin leaves such advertisments in it.

    Isn´t it a better idea to try and make the plugins more “neutral” in what the widgets are calling themselves and such?

    Also with this is it going to be a set design with few changes being made possible without knowing exactly how the code works? Since I went by and browsed a site and fell in love with how the portfolio was shown. I want to do something similar on my own site. Would Projects be able to copy this design easily or would it be pretty impossible?

    It´s great that your making plugins for each of the previous “features” of your themes for quick and easy changes between WooThemes and other themes. For a new developer of wordpress themes wanting to make a name of his own then these plugins are great. Except for what they throw out when viewing the “view source code” as it degrades me as a developer choosing to use so many plugins from WooThemes.

    Like on my site I am now using Genesis. It would be so very very weird for me to see loads of “WooTheme” when I view the source code of the theme I´ve worked with. But that is just my own thoughtline. If a theme is from WooThemes then I would assume that I would see a lot of “Woo” in the code. But if I make a theme of my own or buy a theme from another developer and then see a lot of “woo” in the code then my mind simply goes ?_? What theme am I currently using now again???

    I am looking forward to seeing Stitch soon. Not that I think that I will end up buying it but seeing new themes from you now is becoming more and more interesting again.

    Sorry for the long comment and my rant but yeah. My thoughts on this.

    • Matty Cohen
      February 19, 2014 at 5:26 pm #

      Hi Henrik,

      Thanks for your feedback on this.

      To clarify, we only use “woo-” in code when we need to encapsulate a piece of code. This could, for example, be a function which would have a very common name without the “woo” (for example, woo_get_dynamic_values()), or on the frontend, when we want to make sure that our styling for a particular plugin (we don’t often include CSS in our plugins, by the way) doesn’t affect other areas of the website.

      As can be seen by the UI and UX in the admin area of the plugin, we don’t want to push our brand too much in the UI (for example, post types are called “project”, “feature”, “testimonial”, etc, rather than “woo_project”).

      We are very conscious of this and will continue to make every effort to make our plugins as neutral and portable as possible. 🙂

      • Henrik
        February 19, 2014 at 5:50 pm #

        Thanks for the quick answer Matty!

        Now when I take a look at the themes you´ve created I see that the html code that the plugins output have changed to be much more neutral. Which I enjoy.

        Good to know that the code is portable. I´ll give it a quick tryout to see if I can make something happen with it. Otherwise I´ll have to hardcode most of the stuff myself. Which can be a bit tiring. And troublesome to move when changing themes.

        I have not yet tried WooCommerce as I do not have a online shop or created one for any friends/clients so I have not tried it out.

        If I have any trouble I will check the documentation first, then make a query with the helpdesk. Thanks for the heads up about you welcoming me there!

        • James Koster
          February 19, 2014 at 8:19 pm #

          I think that if overall, your only comments about the plugin are about a few instances of ‘woo’ in the class names we’ve done a good job 🙂

          The simple explanation for that is to avoid conflicts. We might go overboard on occasion but it’s better to be safe than sorry.

          For example using a simple ‘projects’ class would be folly. There are potentially many other plugins and even themes that might use that class which would lead to a cocktail of styles being applied to incorrect elements. No fun for anyone.

          I hope you enjoy using the plugin though 🙂

          • Henrik
            February 20, 2014 at 10:36 am #

            I just recently got out of school and we were pretty drilled in making good classnames. Woo_everything is not a good classname! :p

            And yes. From the looks on things the code mentioning woo_ is the one complaint I did have. When I get it to work on my local installment I might have more to say.

            I´ll probably create a query for the helpdesk later today on why it is giving me a error when viewing the projects page I created. I don´t recall the error name now so I will not even try. But it wasn´t fun to see it.

          • James Koster
            February 20, 2014 at 11:27 am #

            I’m guessing your classes were teaching about general web development. Building a bespoke web site is very different to building a product used on top of another platform alongside potentially hundreds of other products which you have no control of and had no hand in coding. Over-specificity in css is bad. But in these cases it’s absolutely necessary.

            Errors are never fun. Post in support and we’ll look in to it 🙂

          • Henrik
            February 20, 2014 at 7:27 pm #

            Indeed. Name classes as they should and so that they should be easy to use. This is done for others to easily know what you want to do with everything.

            But alas, most of it was a introduction to HTML and CSS writing so yeah. Not quite on this scale.

            For some odd reason the error I encountered yesterday isn´t there today. So I cannot fill a error report on something that now doesn´t create an error XD This was a wierd feeling. Next time if I manage to recreate the error I´ll post in the support section. But as things stand now I have nothing to complain about.

    • Matty Cohen
      February 19, 2014 at 5:28 pm #

      To answer your question about the design, the code is pretty portable. The plugin includes a neat templating engine, similar to that used in WooCommerce, which makes templating and creating custom layouts really straight forward.

      If you encounter any issues or have any queries while templating, please do contact our helpdesk: 🙂

  10. SarahS
    February 19, 2014 at 5:34 pm #

    I might have missed this, but is there an easy way to move my Canvas portfolio to projects or does it do it automatically?

    • James Koster
      February 19, 2014 at 8:22 pm #

      If by ‘easy’ you mean an import/export script that does it for you, no I’m afraid not.

      I wouldn’t say it’s a difficult process to port your portfolio items over though granted it may take some time.

      • drewmcmanusllc
        February 20, 2014 at 1:30 am #

        I was concerned about this too and I’m curious to know if the existing portfolio custom post type is going to be removed from Canvas and users will be required to use this solution. If so, it would mean dozens (if not hundreds) of hours of work to convert all of my user sites so I *really* hope Woo is thinking about that end of it and not expecting users to bear the brunt of the load. Thanks in advance for letting us know what to expect here.

        • James Koster
          February 20, 2014 at 1:48 am #

          Please read the post 🙂 It confirms the portfolio functionality that exists in any of our themes will be removed in the future.

          I’m not going to say that we’ll definitely write a script to migrate, but it’s something we’ll consider. Please post on our ideas board so that we’re able to gauge the demand.

          • spottyangel
            February 20, 2014 at 2:54 am #

            Hi James,
            is there some documentation that explains what the actual process is to move a portfolio item over to projects. Also not sure if I have missed something here but have you a url to the ideas board it’s not obvious as to where it is.

          • James Koster
            February 20, 2014 at 11:22 am #

            You can find the ideasboard here.

            There’s no documentation. It is a manual process right now.

          • SarahS
            February 22, 2014 at 1:28 pm #

            I shouldn’t have to, I would have thought that’d be obvious.

      • SarahS
        February 22, 2014 at 1:27 pm #

        That’s what I was worried about. For years Canvas has a portfolio and now you’re saying you’re replacing it and not giving us a straightforward way of changing it over. That’s terrible.

    • tinamoreau
      February 24, 2014 at 7:20 am #

      I’ve created an “Idea” suggesting that WooThemes create something to help with the transition for Canvas users currently using their portfolio.

      • nightrider
        February 24, 2014 at 10:49 am #

        Thanks, tinamoreau, for creating the idea on WooIdeas. I’ve voted for it and also asked the admins to fix the title spelling so it’s “Portfolio” and not “Profoilio”. because nobody’s going to be searching for “Profoilio”.

  11. soldier99
    February 19, 2014 at 8:22 pm #


    A bit out of the topic but… Today i discovered a Canvas theme update on my account which wasn`t there before. An it shows version 5.60 released on 2013-12-24. If the date is correct then why it took 2 months to appear n my account?

    • Maria Scarpello
      February 19, 2014 at 9:19 pm #

      Hi Soldier99!

      Can you please open a new ticket here so we can help look into this for you:


    • Matty Cohen
      February 20, 2014 at 9:40 am #

      Hi there,

      The update was finished today… the date listed for the update was most likely not changed (an error on our part).

      We’ll be sure to rectify this in a future version of Canvas.

      Thanks for bringing this to our attention. 🙂

      • nightrider
        February 24, 2014 at 11:20 am #

        The date stamps on the Canvas 5.6.0 files say 2014-02-17, so that’s the earliest date you could say is a release date. I see that Hustle 1.2.0 is from the future: 2014-08-30. Evidently the processes used by the WooDownloads system allow these types of errors to be easily made, which is why I shouldn’t be surprised that it takes less time to talk about it here than to make the fix. But I don’t know what voodoo is involved in the WooDownloads system. I do congratulate you all in fixing the column sorting and serving the icons over https so they show up in Firefox. That’s nice!

  12. CottageCrafted
    February 19, 2014 at 8:54 pm #

    Great! Can you create more than one of these portfolios per site? Canvas only allows you to have one.

    • James Koster
      February 19, 2014 at 10:43 pm #

      You can create multiple projects, just as you can create multiple posts, products, etc.

      • CottageCrafted
        February 20, 2014 at 6:41 pm #


        • CottageCrafted
          February 20, 2014 at 6:43 pm #

          I mean, more than one Portfolio page with different items, not the portfolio items themselves.

          • James Koster
            February 20, 2014 at 8:35 pm #

            Well, you can use categories to do that. Or create pages and use shortcodes to pull in / exclude specific categories.

            Beyond that you’d need a custom loop.

  13. CottageCrafted
    February 19, 2014 at 9:32 pm #

    Another quick question: did you remove the “Slider Height” for the Business and Magazine Template Settings in the latest Canvas?

  14. Tevya
    February 19, 2014 at 9:50 pm #

    Here’s a suggestion for a future feature/upgrade to your excellent new plugin:

  15. Scott Bytheway
    February 20, 2014 at 4:21 am #

    Hi guys,

    What happened to the photography extension, that was in dev before Christmas?

    • Matty Cohen
      February 20, 2014 at 9:41 am #

      Hi Scott,

      This extension is still in development, and nearing the final steps.

      The last 5% of a project always seems to take the longest. 🙂

      Thank you for your patience in this regard. We’ll get the extension into your hands as soon as possible. 🙂

  16. dryfly
    February 20, 2014 at 9:17 am #

    Nicely done – looking forward to working with Projects tonight.

  17. thomasclausen
    February 20, 2014 at 9:55 pm #

    This is really cool. I feel like the shift from themes to plugins is very exiting and broadens your potential user base a lot.

    There’s one missing link I would like to hear your thoughts on:

    It seem like the thing that could tie these things together is missing a bit.
    If we take the testimonials-, team- and project-plugin, it would make good sense to tie these together maybe through their categories. Or even better through each other. So that I could say that team-member a, b and c worked on project X that yielded testimonial 1, 5 and 10

    This could give all the these some very cool archive pages.

    Is this a direction you will think about taking in the future?

    • James Koster
      February 20, 2014 at 10:36 pm #

      In a word, yes 🙂

      This is definitely something we’ll be exploring in future versions of the plugins.

      • Thomas Clausen
        February 20, 2014 at 10:43 pm #

        That sounds fantastic. Looking forward to this 🙂

  18. Liam
    February 21, 2014 at 1:41 pm #

    Any plans for this to be integrated into the appply theme?

    • James Koster
      February 23, 2014 at 5:44 pm #

      Yes, we’ll be integrating projects with many of our themes in the coming weeks / months.

  19. ash
    February 21, 2014 at 4:04 pm #

    which visual composer is compatible with your themes?

  20. echoleaf
    February 21, 2014 at 5:36 pm #

    Do you have a live demo of Projects available?

    • James Koster
      February 23, 2014 at 5:40 pm #

      You can see a basic example on the Maximize demo.

  21. hugoceramiques
    February 22, 2014 at 5:38 am #

    I do like the idea of data being portable and not having to stick to one theme. However, after having created hundreds of portfolios projects in Canvas, I am far from happy with the idea of being left alone in the dark. I specifically bought into Canvas because it was your flagship theme and I though you would continue to build on it. I understand your new market strategy and I am sure that it will payoff. However, I hope that the Ninjas will not just shut the door and that you will come out with a migration code for the 20000 of us.

  22. iJason
    February 23, 2014 at 8:24 pm #

    Just installed this on a client site and it’s great! Though one recommendation…

    On the project-gallery.php page, instead of…

    echo $image;

    seems like it should have…

    echo apply_filters( ‘single_product_image_thumbnail_html’, sprintf( ‘%s‘, $image_link, $image_class, $image_title, $image ), $attachment_id, $post->ID, $image_class );

    So that the gallery images link to themselves and can be viewed in a modal window.

    Also modifying the columns seems to not be user very friendly, and could use a category filter in the WP Dashboard. Other than that, It’s a fantastic 1.0 release!

    • James Koster
      February 24, 2014 at 11:28 am #

      What are you struggling with re: changing columns?

      Thanks for the other suggestions. We were hesitant to make the images link without including a lightbox, makes sense if it’s filterable though. Keep an eye out for the next release 🙂

      • iJason
        February 25, 2014 at 12:11 am #

        Great! Looking forward to it. This will be a very valuable plugin to the Woo Themes Family for sure.

        Re: Columns…
        I tried changing the shortcode to be 4 columns and didn’t seem to work. Then I couldn’t find anywhere in your documentation where you suggest to change the columns. I found a few instances of column references on some of the .php pages, but it would be good to get a best practices recommended way of changing the columns from the default 2 to something like 3, 4, or 5 columns in your documentation. (Also I 2nd the motion of an optional live filter portfolio as a option in the settings)


  23. 46digital
    February 24, 2014 at 12:04 pm #

    Will this have the same functionality as the current Canvas with a filterable portfolio that goes to a single portfolio view? I have several sites that have customisations to these templates.

    • James Koster
      February 24, 2014 at 4:16 pm #

      It’s not exactly the same. There’s no live filtering, but there is categorisation and single project pages, yes.

  24. Dandelion22
    February 25, 2014 at 9:18 pm #

    I’m excited to find this plugin and just downloaded it to try on my site. One suggestion, or question: It appears that I can’t select which page is being used for the portfolio until it is published. But until I select the page, I won’t be able to preview what it really looks like with the portfolio on it. So I’m left to trial and error how it looks with different image sizes or to see what the cover image does vs what the project gallery does while going live with every change. It would be nice to be able to choose to apply the portfolio to a draft page.

    • James Koster
      February 26, 2014 at 12:30 pm #

      I don’t see that as a big deal. You can publish a page and keep it hidden easily enough. Just don’t add it to your nav until you’re happy with it.

      Regardless, please post ideas on the ideasboard.

  25. ryanoelke
    February 26, 2014 at 7:38 am #

    Duuuuude. Thank you! This an Woo Teams is BOMB. I’ve been waiting for you all to do that. Your strategy to pull functionality out as plugins is full of win. Thanks!

  26. Steve
    February 26, 2014 at 5:22 pm #

    There is nothing worse than themes that are bloated like Elvis after 72 peanut butter and jelly sandwiches and that seems to be the way a lot of other dev companies have been heading. They want to pack everything into a theme and most of the time half of these features are not even used. I completely agree with you, lightweight and fast themes and leave the functionality to plugins that are specific to what is needed. This is why I like your WordPress themes the most!

    February 27, 2014 at 12:25 am #

    I’m not a coding kinda gal, meaning I know little to nothing about it. Which again means, I need a simple answer someone like me can understand. I’ve added the Projects plugin to Maximize. Adding a new project, it all seems to be working in preview before publishing, though the images are a bit over-sized, so I’ll have to do some manual re-sizing there. But as soon as I hit ‘publish’, I get the 404 error everywhere where the Projects plugin is involved. Is there a bug? Or am I just being ‘all thumbs’?

    It does work as a widget, displaying the cover image, but that’s about all that seems to be working.

    If anyone can help me out, I’ll be forever grateful. 🙂

    • hugoceramiques
      February 27, 2014 at 2:47 am #

      Try going to the WP dashboard -> Settings->Permalinks and hit save.

        February 27, 2014 at 12:06 pm #

        That fixed the bug! Thank you so much for your help! 🙂

      February 27, 2014 at 1:17 pm #

      One bug fixed, another rears its head. The main column in Maximize bleeds into the primary column on the left side, moving all the widgets down to the footer area. I’m going to go out on a limb here and say that Maximize and Projects don’t work together all that well. And since I know nothing about codes, I can’t fix this. And since I have no idea if and when there will be such a fix available, I guess I’m out hunting new themes.

      Anyone have any good theme-suggestions for a photographer who is simply looking for a good way to showcase images?

  28. M
    March 4, 2014 at 4:01 pm #

    Will your theme “For The Cause”

  29. M
    March 4, 2014 at 4:02 pm #

    Will theme “For The Cause” be updated to support “Projects”?

  30. GJ
    March 5, 2014 at 12:50 am #

    Nicely done…but unless I missed something, how can one choose how many columns they want to showcase project items? It appears to only default as 2 columns.

  31. Zinger Web Design
    March 12, 2014 at 9:46 am #

    Portfolio plugin will contain changes that may affect your existing use of the plugin. Thanks!

  32. AlexInkfish
    March 14, 2014 at 2:23 pm #

    Hi there.

    I’m having some trouble increasing the columns from 2 to 3.
    I might be doing something wrong here but I’v changed the value to 3 in the apply_filters on content-project.php, however the value is defaulting at 2 when I echo it out.

  33. Danlg
    March 16, 2014 at 1:12 am #

    I am very excited to see this plugin!

    However I’m the same issue as “beate73” is having with the sidebar being pushed down into the footer.

    I am using the WooThemes Memorable theme.
    I am sooooo close, I hate to abandon ship on this theme.

  34. jasa
    March 25, 2014 at 5:10 pm #

    thanks for plugin man, it helpful displaying my portofolio

  35. Designhill
    March 26, 2014 at 7:24 am #

    A graphic designer, this portfolio gallery plug-in will be best. I used this one and found good.