Skip to content


What is Carrington? The Q&A

One of the challenges you face when when you create something new is how best to describe it to people so they understand what it is for and how they can use it. While a number of developers and theme authors have dug into the documentation and example themes and learned how to use Carrington, we’d like to make it a little more accessible to others. We’d also like to clear up some misconceptions about the Carrington framework vs. other WordPress theme frameworks.

To get started with this, we’re going to try a good old O’Grady-style Q&A.

What is Carrington?

Carrington is a new (we think better) way of organizing a WordPress theme, coupled with a core framework engine that provides a bunch of exciting functionality for free, just by creating different named templates.

The Carrington framework is a completely additive framework. It builds on the existing core WordPress theme structure and functionality and uses core WordPress theme functions for easy adoption by experienced theme authors.

You can even use the Carrington framework selectively when creating a theme, more on this later.

Why did you originally create Carrington?

When you spend enough time creating advanced web sites using WordPress you eventually notice a number of things that you find yourself needing to do over and over again. Like any good developer, when you notice patterns you look for ways to automate and re-use functionality. We did this with WordPress themes and Carrington is the result.

Instead of having to create a bunch of conditional statements in theme code, Carrington supports a rich set of named template files and applies them as appropriate based on data conditions (examples: post is in category X, has a custom field of Y or a comment is by a user with a role of Z). Using Carrington allows you to create richer, more complex sites more easily.

At WordCamp SF this year, I was chatting with Adam Tow and he reminded me that I was talking about building this sort of system back in 2007 when we were working on the All Things Digital site together. It’s something I’ve wanted to build for a long time, and I’m really proud of how the idea has been realized with Carrington.

Why is the multiple template approach better than conditional code?

It’s a bit of a generalization, but the multiple template approach is a win over writing conditional code for a number of reasons:

  1. Less code = fewer bugs. It’s a bit of an oversimplification, but writing less code reduces the chance for bugs and edge-cases to sneak into your code.
  2. Fewer reference lookups = faster development. When you don’t have to look up how to access user permissions, if a post is in a certain category, the syntax for checking custom fields, etc. your development is quite a bit faster.
  3. Maintaining your conditional rules all in one place ensures that the logic for your site is consistently applied.
  4. Having the conditional rules all in one place also makes the site easier to maintain. It makes it less likely that you run into unexpected edge cases when adding a new post type, etc. – this sort of issue is common when you have complex conditional code in lots of different places.
  5. Designers/front-end developers have more power. By removing the requirement to write PHP code to achieve custom visual styling is certain situations for posts, comments, sidebars, headers and footers, etc., WordPress theme creation is more accessible for designers and front-end developers that aren’t as comfortable writing PHP.

Multiple templates does have a potential drawback of code duplication, but if you’re smart about how your structure your templates and create includes for common code bits, most of those concerns are non-issues.

How does Carrington differ from other theme frameworks?

A development framework trades convention for code. Basically, you (the developer) agree that you’ll follow certain conventions in your code and as a result you’ll get certain functionality, features, etc. for free as part of the framework you are using.

This is how development frameworks like Rails for Ruby, Django for Python, CakePHP/Symfony/CodeIgniter for PHP work, and it’s how we built Carrington as well.

You use the template naming conventions and directory structure supported by Carrington and you get to write less conditional code.

So it’s not a parent theme?

No, it’s not a parent theme and it isn’t intended to be. I think it’s really unfortunate that people decided to call parent themes theme frameworks. They aren’t frameworks in the standard development sense, they are parent themes that support child themes to override certain components of them.

How do people maintain their changes if they can’t create child themes?

Carrington was created to help build complex web sites that are powered by WordPress. To do this it has added certain conventions that are not well supported by the current parent/child theme system in WordPress.

We may look at submitting core improvements in the future to allow this to work better, but it’s not at the top of the priority list yet.

Why call it a “CMS theme framework”?

When we started building Carrington we called it a theme framework because that’s what it is. However, since “theme framework” has been co-opted to mean “parent theme” this was causing all sorts of confusion.

We changed our terminology to “CMS theme framework” in an attempt to differentiate Carrington from the parent themes out there, while still indicating that it is indeed a framework – a framework intended for creating CMS web sites with WordPress.

Sounds complicated, it’s only for developers?

Not at all. The concepts are strikingly simple, however perhaps because they are somewhat challenging to the WordPress theme status quo and perhaps because we have not produced any tutorials yet, some folks seem to dismiss Carrington as too hard to use.

In fact, the opposite is true – using Carrington makes creating complex WordPress themes and web sites much easier.

How come there are so many files and folders?

With Carrington we took care to re-think and re-conceptualize how we use WordPress themes, and to abstract things at the levels we commonly need to make customizations. We also made sure to keep the same logical flow as a standard WordPress theme so that it would be as easy as possible for people to follow.

It basically boils down to this: where a traditional WordPress theme has a single file, a Carrington-based theme has a folder. Inside that folder can be as many templates as you like and the Carrington framework will choose and select the right file to use based on the page being shown.

This means that at just about every spot in the theme that you need to make a customization, you can do so without needing to write conditional code. You can simply make a new theme with a name that matches the situation you want it used in.

By abstracting the parts of the theme in a more granular way, it also means you have less repetition of code for a more elegantly constructed theme. The WordPress Default theme includes the code to display a post in several different files. Carrington uses the same file (or files, if you have different templates for different post types) in different places – you only have to change things once and they get updated everywhere.

Whare are the benefits for a designer?

Mainly the fact that you don’t have to write PHP code to apply rich, different designs to different posts, comments, sections, etc. You can spend your time working on your design and let the Carrington framework do all the heavy lifting for you.

Why did you release it?

We believe strongly in giving back to the WordPress community. We are thrilled at how powerful the Carrington framework is and how much easier it makes building the sites we work on. We want others to have those same benefits, and perhaps contribute back to Carrington as well.

The Carrington CMS theme framework has always been free, Open Source under the GPL. The code is hosted publicly on Google Code and we’ve even created our Carrington JAM theme to give folks a good starting point for creating a Carrington-based theme.

Why did you release themes based on it?

Again, to give back to the community. Also, we wanted to put out some examples of how the Carrington template abstractions can make certain features (AJAX loading of posts and comments for example) much easier than the traditional WordPress theme file structure.

How do you plan to help people better understand the power of Carrington and how to use it?

Hopefully this Q&A is a start. :)

Besides the thorough reference documentation that is already available and included with each Carrington theme, we’ve been working on some overviews and tutorials that should help explain the power of Carrington and make it more accessible to people.

Thankfully we’ve been very busy at Crowd Favorite this year, and this documentation has often taken a backseat to our project commitments (I started writing this Q&A 2-3 weeks ago). I hope we’ll have more examples and tutorials available soon. We welcome any tutorials, overviews, etc. from the community as well and will be happy to host them here with appropriate credit links.

Posted in Announcements, Development.


20 Responses

Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.

  1. pundit says

    Since early releases of the Carrington framework, I have come back to it from time attempting to reimplement my journal using it. In particular, I am interested in using Carrington JAM (and Yahoo YUI CSS, but that’s not important) as a starting point to implement a reimagined version of my journal.

    I have paused on each occasion. Even though the function that points out beside an element on the page the name of the file that is used in its generation is helpful, I found the number of files and its structure is overkill for the purposes of my simple site (that essentially has only one kind of page). But I think I should rethink my approach. Perhaps I should try to expand the kinds of pages that I have, since I do have more than one kind of content: short entries, long entries, single photographs and galleries.

    I will try again, and if I have the time, write about my findings in the form of a tutorial. Perhaps it will help someone else decide on Carrington as a starting point.

  2. Brina Carnell says

    The two paragraphs immediately after “How do people maintain their changes if they can’t create child themes?” are interesting, but they don’t actually address that particular question at all.

    If there aren’t child themes, how does one go about preserving changes when the Carrington Framework is updated?

  3. Ryan says

    This is really blowing my mind right now. Why isn’t wordpress like this to begin with? I resort to way too much CSS trickery (by referencing body id’s) since I’m not really a PHP programmer. This what I’ve been looking for in wordpress for a long time.

  4. justin style says

    really great framework, im very happy to have found your theme. One problem im having thought is i have a lot of posts in each category, and i need to set up some kind of pagination, with a limit on posts shown with the loop. i know how to do this with a wp loop, but it doesnt seem so straightforward here. any tips?
    thanks

  5. justyle says

    FIXED! sorry i saw that you could alter the default number of posts in the custom carrington settings. so after setting it to 10, i noted that it generated a next and previous pagnination.

  6. Sridhar says

    I love your framework(atleast till the moment I wrote this comment) . I have installed it on my blog. I am a developer with basic knowledge in php, css. Hoping that I’d keep your theme on my site for a long time. Anyways thanks for releasing this framework under public domain.

    • Sridhar says

      [UPDATE] I’ve spent ten minutes to figure out the page where I can paste Google analytics script in Carrington theme. The page is footer-default.php
      Hope this saves some time for people searching for tag in carringtom theme to install google analytics script.

  7. Wroth says

    Wrt the line: “The Carrington CMS theme framework has always been free, Open Source under the GPL.”… I am a little confused because I noticed the Crowd Favorite website store sells a “Developer License”, though I see no reference to that product on the carringtontheme.com site. Would I need to purchase that License before I could use Carrington JAM as a basis for a commercial website?

    • jlindo says

      I am wondering the same thing. I’m looking for a definitive answer on licensing and attribution but haven’t had any luck yet. Does anybody know where we can find this info? Thanks!

    • Alex King says

      We tried to make this explicit by putting this on the about page and at the top of the sidebar on ever page:

      Carrington is a CMS theme framework for WordPress from Crowd Favorite. License: GPL

      Purchasing a developer license supports our development of the framework and themes – we hope that you will. :)

      • Wroth says

        Yes I saw that, I don’t think there is any doubt what license it’s released under but rather doubt about what that license means in practice. I read the GPL but it can be a bit confusing for someone not used to reading open source license language, statements in the License like “When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish)” make the use of the term of ‘free’ a little fuzzy, you know? :) And I would like to be clear not fuzzy on the matter

        It’d be great to get an outline about the responsibilities for fees and attribution taken on for different types of use? As well as any other optional ways we could help support the project. So that we are sure to live up to those responsibilities once we understand what they are. [ I might suggest also that this site here links to the shop at CF, because I only found the shop there by accident ] I don’t see price tags all over the place here so I am assuming for design work based on JAM there are no mandatory fees, but I don’t want to proceed on an assumption without paying you all your due :)

        • Daniel Koskinen says

          I’m also curious about the developer licence, and especially what I get for if I decide to buy it. Does it include any kind of premium support? Or am I simply paying to support your development? If it’s the latter, you should perhaps refer to it as a Donation, not a Licence.

          I’ve already built a few sites using Carrington and think it’s great. They’re fairly big sites so I’d be happy to pay for a dev licence IF that means some kind of security in getting support (I’ve got a Gravity Forms dev licence and think their model works well). I don’t want to simply pay for all the people who are using it for free.

Continuing the Discussion

  1. What Exactly Is The Carrington Framework? linked to this post on August 3, 2009

    [...] Carrington framework by Alex King and Crowd Favorite has published an extensive question and answer post on their development blog. The post covers everything from what the Carrington theme framework [...]

  2. links for 2009-08-04 | Links | WereWP linked to this post on August 4, 2009

    [...] What is Carrington? A complete FAQ of Carrington, one fo the WordPress frameworks. Read it and you may be surprised! It is true that the defintion of a framewor is sometimes vague in the WordPress community, but in many points, Carrington seems to be more of a framework than any of its "competitors". (tags: WordPress theme framework) Leave a Reply Click here to cancel reply. [...]

  3. Framework Overview – Carrington linked to this post on August 6, 2009

    [...] WordPress theme, and the core functionality of the Carrington CMS theme framework. Please read the Q&A first before reading this [...]

  4. The General Context – Carrington linked to this post on August 9, 2009

    [...] in the Carrington CMS theme framework for WordPress. Before reading this, you should read the Q&A and the Framework [...]

  5. The Comment Context – Carrington linked to this post on August 9, 2009

    [...] in the Carrington CMS theme framework for WordPress. Before reading this, you should read the Q&A and the Framework [...]

  6. The Post Context – Carrington linked to this post on August 10, 2009

    [...] in the Carrington CMS theme framework for WordPress. Before reading this, you should read the Q&A and the Framework [...]

  7. What’s in store for Hybrid 0.7? linked to this post on November 4, 2009

    [...] people seem to think that parent themes like Hybrid are not true frameworks. Well, when it comes to Hybrid, this is not entirely [...]



Some HTML is OK

or, reply to this post via trackback.