As our flagship theme, Canvas has seen many enhancements and additions since it’s released early last year. The response to Canvas’ flexibility and ease of use from users at all levels has been incredible. With this in mind, it was time to give Canvas a bit of a tune up under the hood and overhaul the code for even more flexibility.
When approaching a task of this nature, which concerns users of all types and skill levels, it is important to take that into consideration as a primary pillar on the project- users of all skill levels need to be able to take advantage of the new features. Enter the Manager modules.
The Manager modules, “Layout”, “Hooks” and “Meta”, provide users with an easy-to-use interface for making use of advanced functionality in Canvas (such as it’s bundled hooks via the “Hook” Manager and filtering common areas via the “Meta” Manager). This means that, without understanding too much about what a hook or filter is, a user can make use of them. Therefore, at a basic level, these advanced functionalities no longer seem daunting and unapproachable. More advanced users can, of course, still make use of a standard coded filter in their child theme, once comfortable with the concepts of what hooks and filters are.
When the average WordPress user starts out with customizing themes, they become familiar with the theme template file system, page templates an how the templates all piece together. For a new user, or a user simply trying to debug an issue or customize only a small element of a single page of their website, trawling through hundreds (even thousands… eek!) of lines of code can be cumbersome and can get messy with many IF conditional statements, etc. Enter the new Canvas templating engine.
Canvas’ templating engine has been overhauled to provide granular control over the display of your website, right down to how a single specific post is displayed everywhere on your website (search results, archive and the detail screen). The templates aim to separate the main template file (containing the presentation and website structure), the loop (containing the logic) and the post content (how that specific post is displayed).
And best of all: all this granular control is 100% child theme friendly. This means you can make changes to the way your template files look without needing to carry over any of the common logic to your child theme. Pretty cool, right?
In the first few paragraphs I discussed the “why” behind the Manager modules. Here’s a bit more about how they work.
The “Meta” Manager uses flexible shortcodes to customise the areas below each post’s title and below each post in the “read more” area. This Manager provides simple text areas for inputting text, HTML and shortcodes.
To touch briefly on these new shortcodes in Canvas, we have created flexible shortcodes to display commonly used content such as a post’s categories, tags, date, time, author and more, as well as shortcodes such as general credit and copyright text, for use primarily in the footer (which now also supports shortcodes).
As a side note, all our other shortcodes (aside from Custom Typography at, present) work here as well. Therefore, a customization such as inserting a Twitter button below each post is now a breeze.
The “Hook” Manager assists users with adding content at any of the Canvas custom hook points. This, coupled with custom CSS, makes code additions a breeze, without needing to dive into code. These hooks support HTML, plain text and, you guessed it, shortcodes!
The “Layout” Manager is the veritable “big daddy” of the Managers. It controls all layouts in Canvas, allowing for the customization of the widths of each column in each of the available layouts, via a draggable user interface. Customise each layout as desired and, when selected for use on a page or post (or as the default layout), that layout’s customized widths will be put to use. Just another way we’re handing over control of customizations to you, our awesome WooCommunity.
To sum up, when overhauling a project such as Canvas, it’s important to consider all use cases for the project. Users who are making use only of the comprehensive theme options, as well as users who are developing advanced customisations via their own child themes. This consideration, as illustrated above, saw the birth of several new functionalities within Canvas, in an attempt to bridge the gap and assist users in making use of the more advanced functionalities that Canvas has on offer. Considering the varied scope of the users who make use of a product can change the outcomes and approaches involved in improving said product.
We’re looking forward to seeing what the WooCommunity can build with this new version of Canvas. 🙂