I am new to expression Engine and I'm coming from a Wordpress background. I am just trying to wrap my head around all the terms. Despite taking some online lessons, I am still lost at explaining what a template and channel are. I've gone to Ellis Labs many times and their definitions seem way too generic. When I go to build a new site, I am not sure which should be built in a channel or template and I don't know why.

Does anyone know of any hierarchy of some type that lays out the framework of the Expression Engine? Perhaps a place that gives an exhaustive definition of each part of the framework (template, channel, entries fields, entries fields group, channel fields group, categories, categories group, relationships, etc) Ugh......just listing them..... can you see why I'm getting confused!?! What is more important then what? If Expression Engine were a chessboard, which ones are queens or kings or pawns? get me?

1 Answer 1


EE has a steep learning curve, so don't think you are alone in being mystified as a new user. There are probably better definitive books you can get that explain things - one highly regarded recent book is this one and is probably worth getting / reading.

Three key concepts to get you started though.

1) In EE information (e.g. blog entries etc.) are stored independently of any direction about how they will subsequently be displayed. All data is stored in fields which are themselves stored within entries within a channel. You can define multiple channels within a web site - so one for products, another for locations, a third for blog articles and so on. Each channel is associated with a specific set of defined fields - this collection of fields is known as a channel field group. When you add a new bit of information to your database, it has to be entered as an entry in a channel, and will comprise data stored in some or all of the fields you have defined for that channel (you can mark fields as being compulsory or not). So you can have a channel for blog entries, and define that each blog entry will have a name, some text, and an image - i.e. three fields. Each time you try to add an entry to the blog channel you'll be asked for these three items of data. You can do clever things with the data if you want to - for example you can attach 'categories' (think tags) to entries within a channel (so you could have a category for 'sports' and 'cars' in your blog if you like) and then extract from the blog channel just those entries about cars (for example).

2) In EE page design is quite separated from data - a template is the set of instructions you need to construct a page for the web site, and as part of the instructions for the template you can include rules for how EE will work out what data to display within the template. Most of a template will be the HTML codes you want to use to generate your page - but within that HTML you can insert EE tags (that are denoted by {} brackets) that will be decoded by EE and used to inject data into your HTML. So for example if you are displaying data from a channel that has a "title" field, you might see HTML like this in the template <h1>{title}</h1>. In general you create templates to display information from a channel as a list (i.e. one listing all your blog entries), or as single entry display templates (where the same template can then be used by each of your blog entries). Template design can get very clever once you have got the basics - so you can mix and match data within the same page, and can get very clever about exploiting features of the EE data retrieval system to generate very sophisticated pages of data with not a lot of coding. EE also fully supports modern cleverness such as responsive design and API driven sites - thanks in part to its clean separation of data and display elements.

3) EE has a lot of core functionality, but is also a system that has many many functional extensions. Some of these help with the storing of data - for example by adding new kinds of fields to the set you can deploy in a channel. Others help by making some common template coding tasks easier. There is a strong community behind these 'add-ons' and probably most working EE sites are using several such Add-ons. If you have not found it already you should check out a site called devot-ee.com which is a valuable source of free and paid for add ons.

Something you might find useful too is to check out the two EE add-ons that can be used to make EE behave more like a page based CMS - Structure and Construct - if you want them to they can help hide much of the complexity of EE.

Hope this helps - it only scratches the surface, but maybe it will be of use.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.