Taking a closer look at Thesis 2


When Thesis 2 launched it caused a bit of a stir in the development community and this spurred some people to write reviews that literally hammered it. I read all those reviews, but I couldn’t help notice that for the most part these reviews were all based on a glance of Thesis. One could say there was a rush to gain some publicity and a chance to attack Chris Pearson (The man behind Thesis).

Chris Pearson is a controversial figure not least because of the row between him and Matt Mullenweg (The man behind WordPress).

I’m not going to get in to all the details about what that row was about and who was right and who was wrong – the point is, it was wrong for people to attack something they didn’t understand possibly because they didn’t like the person behind it or didn’t take the time to explore it.

Whether you like Chris Pearson or not – the fact is he has produced an excellent product that is worthy of your time and I am going to explain why.

Why should You Pay Attention to Thesis 2?

For developers – Thesis will teach you things you may not of thought about before. It pushes you to write better code and its powerful API system allows you to build extremely efficient websites as well as being able to provide variations that allow your potential clients to alter the way the site looks and operates. We will look in more detail at some of the features offered by Thesis further down.

For Aspiring Developers – The underlying code behind Thesis is clean and incredibly well put together, anyone learning to program with PHP will certainly benefit from working with and studying Thesis. Again it will push you towards self improvement as well as writing cleaner more efficient code. It is a tool and one that can help you to become a better all round developer.

For webmasters – assuming you know nothing about coding, Thesis skins allow you to simply upload the skin and configure some options (at the most basic level). For those looking to learn a little more about their website – Thesis gently pushes you to try to figure things out when attempting to go outside the limitations set by the Skin Developer.

The diythemes forum has plenty of willing people to help you out and ultimately this will make you a better webmaster. If you look at any successful webmaster you will find that almost all of them know something about how their website works. Thesis helps you to do that and you can do it at your own pace.

What can Thesis 2 offer me?

Thesis 2 is a framework which to you means it can be molded in to just about anything. Its core lives both inside and outside the realms of WordPress. Because of its object orientated nature – Thesis can be extended in ways that procedurally based software cannot and the main way to do that is through the use of boxes and its’ API.

What are Boxes?

Boxes can be thought of in a similar way to plugins. Plugins extend WordPress and boxes extend Thesis, but there are key differences.

Whats the Difference between Plugins and Boxes?

There are a number of differences and below I will highlight some of them.

Controlling the loading of resources

Plugins can only hook in to certain parts of WordPress and for the most part load their resources everywhere. In order to prevent resources loading globally, conditional statements have to be created and most people simply don’t do that, not to mention the issues that can arise when custom templates are included.

The other downside to plugins is that they tend to be far to clunky for what they do. Almost all plugins add at least one extra stylesheet and one extra script. 10 plugins later you have 20 more resources to load on every page. (Not all but this is the general trend)

Boxes on the other hand have a nice function called public function preload() that only loads scripts and other resources if the box exists on the template thus preventing those resources loading everywhere and eliminating the need to write a series of conditional statements to control where the resources load. I look forward to seeing WordPress adopt a similar method.

The Options Interface.

Sometimes we need to provide options for our potential users and both Plugins and Boxes provide a method of doing that. Options allow us to make something dynamic and give the user some control over the output.

Both plugins and boxes use an API to generate their options page but the options API for WordPress is no where near as simple as the API used for Boxes.

To give you an example I will compare a plugin and a box so you can see the difference.

WordPress Notification Bar

The WordPress Notification Bar plugin for WordPress has 34 files that together produce a message bar.

message bar plugin

The plugin has a few options available to allow you to change various aspects of it.

wordpress notification bar

DIYWP Message Bar Thesis 2 Box

My version of a message bar also produces a message bar that sits at the top of your site.

diywp message bar box

The styling is simpler and I removed the button as it is not necessary – however it could easily be included. This message bar can link to another page and also has an option to open it in a new tab.

diywp message bar box options

The options above only display options that are relevant depending on what you enable. For example when you deselect “Link your message” – the two child options below  will also disappear. This allows developers to create cleaner looking interfaces as well as more logical options.

What about the underlying code?

Anyone that has built plugins and boxes will know that boxes are hands down simpler and more efficient. When 34 files are required to create something as simple as a message bar – something somewhere has gone terribly wrong. The problem is WordPress plugins for the most part split their resources across multiple files which helps the developer maintain the logic behind it as well as maintenance in general.

Thesis on the other hand does most of the work through its API which eliminates the need for repetition.

Just some of the files required to build this plugin.

Just some of the files required to build this plugin.

So you could split the various parts of your code across multiple files which means you have to include all those files in to other files in order to pass arguments and values which means creating many globals that have to access shared data. The limitations of shared data are one of the drawbacks of procedural programming.

Or you could combine everything in to a single file under a single class that can be generate multiple times for multiple purposes giving you absolute precision and control over what loads and where.

An example scenario could be the need to display a different message bar for different templates. Another example is my Auto Featured Image box that allows you to use it for multiple purposes – even in the same template and create totally unique image sizes, one for your main featured image at the top of a post and one for popular posts in the sidebar.

So remember 34 files for a message bar or a single file that is clean and simple to understand.

Name: Message Bar            
Author: DIYWPBlog.com
Description: Simple Message Bar
Version: 1.0
Class: diywp_message_bar

class diywp_message_bar extends thesis_box {

    protected function translate() {
            $this->title = __('Message Bar', $this->_class);
            $this->name = $this->title;

    protected function options() {
            global $thesis;
            $html = $thesis->api->html_options(); 
            $html['enable'] = array(
                    'type' => 'checkbox',
                    'options' => array( 'on' => __('Enable Message Bar', $this->_class)),
                    'default' => array('on' => false),
                    'dependents' => array( 'on' ));
            $html['message'] = array(
                    'type' => 'text',
                    'width' => 'long',
                    'label' => __('Enter your message', $this->_class),
                    'tooltip' => __('Enter the URL for your image.', $this->_class),
                    'parent' => array( 'enable' => 'on' ));
            $html['link'] = array(
                    'type' => 'checkbox',
                    'options' => array( 'on' => __('Link your message', $this->_class)),
                    'default' => array('on' => false),
                    'dependents' => array( 'on' ),
                    'parent' => array( 'enable' => 'on' ));
            $html['url_to'] = array(
                    'type' => 'text',
                    'width' => 'long',
                    'label' => sprintf(__('Destination %s', $this->_class), $thesis->api->base['url']),
                    'tooltip' => __('Enter a url to link the message bar to a page or other location.', $this->_class),
                    'parent' => array( 'link' => 'on' ));
            $html['target'] = array(
                    'type' => 'checkbox',
                    'options' => array( 'on' => __('Open Link in new window', $this->_class)),
                    'default' => array('on' => false),
                    'parent' => array( 'link' => 'on' ));

           return $html;

    public function html($args = false) {
            extract($args = is_array($args) ? $args : array());
            $tab = str_repeat("\t", !empty($depth) ? $depth : 0);

            // Defaults
            $id = !empty($this->options['id']) ? $this->options['id'] : 'message_bar';
            $url_to = !empty($this->options['url_to']) ? $this->options['url_to'] : '#';
            $message = !empty($this->options['message']) ? $this->options['message'] : 'Enter a message via the options panel.';

            // output
            if (!empty($this->options['enable']['on'])) {
                    "$tab<div id=\"message_bar\" class=\"". esc_attr($id) . "\">\n";
                    if (!empty($this->options['link']['on']))
                           '<a href="' . esc_url($url_to) . '"'. (!empty($this->options['target']['on']) ? ' target="_blank"' : ''). '><span>' . esc_attr($message) . '</span></a>';
                           "$tab<span class=\"message_text\">" . esc_attr($message) . "</span>\n";



What about efficiency?

I think it is clear already which is more efficient. The plugin requires multiple files to be processed in order for it to be compiled and produce the output whereas a Thesis 2 box can produce the same results with a single file.

This is my GTmetrix report prior to activating either message bar.

gtmetrix report before message bar

One I activated the Message Bar Plugin I tested it again.

gtmetrix report with message bar plugin

And finally with my Message Bar Box.

gtmetrix report with thesis message box

So we can conclude here that boxes are more efficient (at least with this example) however I could come up with an infinite number of examples and each one would show the same results.

Plugins are simply not the best way to extend something and Thesis has provided an alternative that gives you greater control over the output whilst maintaining efficiency. Plugins to me mean trading off efficiency for some added feature and unless that feature is mission critical – then can it be justified?

Each additional plugin will continue to degrade performance disproportionately and to me that is not fair on the end user, you deserve better.

Some plugins are useful such as W3 Total cache – but then again it isn’t adding some extra functionality, it is simply configuring your .htaccess and managing your cache.

Loading Resources with plugins compared to including additional CSS

Plugins load resources by hooking them in to the header or footer via the enqueue method.

For scripts we use:

wp_enqueue_script($handle, $src, $deps, $ver, $in_footer);

For stylesheets we use:

wp_enqueue_style($handle, $src, $deps, $ver, $media);

Thesis also uses these methods to load resources except the public function preload() allows you load these scripts only if the box is present in the template. If the box isn’t present the scripts aren’t present either.

When it comes to including CSS – most themes have to rely on the enqueue method, however Thesis 2 has an easily accessible Custom CSS editor which allows you to include your CSS by simply copying and pasting it in.

It makes absolutely no sense at all to enqueue another stylesheet when the amount of CSS required is small. Worse still, doing this:

inline css after javascript small

Click for a larger image

To most this may not seem obvious – to me and Google its a gigantic fail. What you see here is inline CSS which is one thing you shouldn’t do unless absolutely necessary and you have some major reason to justify it.

The second issue here is that it is below the JavaScript which means that the styling for the message bar won’t render until after the JavaScript has been downloaded and parsed.

Browsers cannot load everything in parallel, each browser can download typically 6 resources over a single connection. If you have a lot of JavaScript to download and parse in your header, it might take a while for the CSS to be parsed and that will make whatever that CSS is styling look awful for that duration of time.

My message bar requires only a small amount of CSS.

#message_bar {
    background: none repeat scroll 0 0 #FAE985;
    display: block;
    font-size: 16px;
    padding: 4px 0;
    text-align: center;
    width: 100%;
#message_bar > a {
    color: #000000;
    text-decoration: none;

This is not nearly enough to justify enqueuing another stylesheet and I can provide additional CSS examples to make the message bar look and function in different ways. One example would be making it sticky. This where my new demo method will come in to play – you will be able to change the style of something on the boxes demo page and simply copy the output and paste into your custom CSS file via the Thesis admin panel.

Before anyone jumps the gun and says – “but that means you have to do something extra”. A lot of plugins require you to edit templates and include additional CSS to modify the way it looks and functions so including something manually is nothing new and the benefits outweigh the extra 2 seconds of effort. Thesis 2 just makes it simple by having direct access to your single stylesheet.

What else can Thesis do for you?

Apart from Boxes being more versatile – developing skins with Thesis 2 is another giant leap forward. I know there are other Frameworks that use a drag and drop HTML editor but non of them can do it as efficiently as Thesis. Headway for example – the idea behind it is great, however it requires a lot of resources to run its virtual editor and for the vast majority of people who use shared hosting, they will find it to be slow and sluggish. From a developers point of view it also defeats the purpose of being a developer.

With Thesis I spend a lot of time coding stuff for peoples websites such as boxes for custom features and the skins Design Options which enable users to manipulate and alter the skin without touching any code.This forces me as a developer to think carefully about the way that I build my skins/themes. A tweet from Alex Mangini summed it up.

That’s been something I’ve been focusing heavily on in my new WP theme. Themes aren’t just themes anymore, they’re systems.

What Thesis does is give you options – you can stick to the design Options or you can do some customizations of your own – so it is tailoring to both coders and non coders which helps build a strong community around it.

Look at minecraft – ask yourself, why has minecraft survived for so long?

The simple answer is that it engaged and promoted modding. Thesis 2 does the same thing. Developers can create boxes which can be thought of as (code snippets) and make them available to the community for free or for a small fee. The drag and drop HTML editor ensures precision placement of those snippets of codes and each can have its own unique set of options.

Boxes can be made like a plugin as well as being instance based – an instanced based box can be recreated over and over and used to do multiple things and an example of this is the query box.

The Query Box

This is possibly one of the most amazing feats achieved by Thesis. How do you allow a non coder to navigate the headaches of custom loops. The answer is of course the query box – a single box that can be used in an infinite number of ways to allow you to display your content in an equally infinite number of ways.

What this box symbolizes is the sheer effort that has gone in to Thesis to make the difficult things easy.

Here are a few things that I can think of that can be achieved with the Query Box.

  • Display latest posts from categories/tags on your front page or anywhere for that matter.
  • Display Popular posts in your sidebar or other locations.
  • It could be used to create a slider. (I’m not joking – with some JavaScript it can be converted)
  • You could promote certain pages by pulling its content, featured images etc.
  • It could be used to create a carousel. (Again with some JavaScript)

Basically anything you could do before with a custom loop – you can do with the Query Box.


Even today I see websites that should be arrested for crimes against typography – in some cases people have gone as far as saying it doesn’t matter. Someone told Steve Jobs once that typography didn’t matter – that nobody cared about it. They didn’t last long.

The Thesis API includes the Golden Ratio for perfect mathematically precise typography and when developers include this in their skins the end results is stunningly beautiful text that is easier to read and more appealing to your eyes. This is a fact!


Most people don’t know what schema is, but I bet if you asked a Thesis 2 user about it they would at least have an idea. Schema tells search engines like Google more information about your site, pages and posts.

Schema.org sums up the purpose of schema very well on its home page.

Many sites are generated from structured data, which is often stored in databases. When this data is formatted into HTML, it becomes very difficult to recover the original structured data. Many applications, especially search engines, can benefit greatly from direct access to this structured data. On-page markup enables search engines to understand the information on web pages and provide richer search results in order to make it easier for users to find relevant information on the web.

Those who take advantage of schema can benefit greatly but it can be a painful task including it, especially on older sites that predate it. Thesis 2 makes it super simple.

Post boxes and Query boxes both have an option to enable it.

Thesis 2 schema

Color Schemes

Thesis 2 has a built in color scheme picker which is part of its API. This custom tool allows you to create color schemes with ease, simply select a color and the other colors will change to ensure your sites color scheme is mathematically precise. But as always Thesis likes to empower you to make that choice – so if you want to select the colors yourself, you can do that too.

Thesis color picker

The Color Picker is something that any Skin developer can include and lets face it – it looks sexy.

All you have to do is select the Thesis ColorScale and choose a color and the corresponding colors above will change.

You can also quickly revert back to the defaults and if you must – use a grey scale instead.

Skin Back up System

Everyone knows the importance of backing up data and Thesis takes this to another level by including a Skin Backup system that allows you to save your skin at various stages of development. Each backup can be named and is dated so when something goes wrong or you make some changes that you decide you don’t like, you can always revert back by simply restoring one of your backups.

Once again Thesis gives you precision and control.

thesis skin backup

The ability to backup and restore your Skin at will removes the need to restore entire file systems which would be the alternative. Backups generally consist of a complete file system, so screwing up your Theme results in having to restore your entire filesystem or Database to undo the changes made. Thesis just restores the Skin and relevant parts of the Database and this is a real time saver for both developers and those customizing their websites.

Overall Performance

Without a doubt Thesis is the most efficient theme/skin/framework and I have plenty of experience to back this claim up. As an optimization specialist I have worked on just about every type of Theme and Framework you can think of.

I have spent a lot of time wondering what the logic behind some Themes was as most of them do not conform to the practices expected by search engines. Google, Yahoo, bing and others all want you to be efficient and smart about how your websites works and so should you.

Thesis makes optimization and efficiency simple by creating an environment that removes the need for feature adding plugins. We already discussed some of the problem associated with plugins due to the limitations imposed by the WordPress template system.

Here is a list of some of the Optimization benefits of Thesis:

  • There is only 1 stylesheet that comes with Thesis and that is how it should be.
  • Templates consist of data – not files. Processing data is always faster than processing multiple php files.
  • Smart control over the loading of standard JavaScript libraries on a per template basis.

Final Thoughts

There are many areas of Thesis that I have yet to touch but since this post is over 3000 words already I have to draw the line somewhere. This review of Thesis 2 is based on experience and not an attempt like many before me to review a product they didn’t understand. One cannot review a book by its synopsis alone – yet people do, so what does that tell you.

Thesis is a tool and like any tool – experience in using it leads to perfection and from that you can achieve amazing results whilst using the smart technologies applied to the fundamental principles Thesis adopts. There are an abundance of adjectives that could describe Thesis such as future proof, efficient, optimized, secure, intelligent, educational, empowering and precise to name a few.

For developers Thesis encourages you to better yourself and adopt better code practices – one could even say its a little obsessive, but I have been able to efficiently provide better solutions to problems that are inherently problematic when it comes to the traditional template system that WordPress adopts. In short doing much more with less.

Hooks alone are not enough to build optimized websites – the HTML editor gives you the level of precision required to craft a skin that your clients and visitors can be proud of and like any other Theme or Framework out there – with a little help even the most novice users can create something beautiful.

At the same time you will be teaching yourself more about how your website is constructed and that has benefits over the long term. Alternatively you could purchase a Skin and through the use of simple options, make it your own.

When I work with Thesis I feel like I am challenging myself to do better than I did before. To further refine my HTML markup, to further reduce the amount of CSS, JavScript and PHP required to create the site. It’s addictive, but the results are clear – I have been developing websites as a job for around 3 years now, although I have built websites years earlier when things were a little more complex and unintuitive. In those 3 years I have gone from a novice to dare I say expert in my field, studying the way Thesis works (both 1 and 2) has partly contributed to that.

My server background taught me the importance of efficiency and what I saw for the most part was extreme inefficiencies everywhere – but Thesis 1 was different, not perfect, but to me it stood out of the crowd. Thesis 2 just plain dominates that sphere of delivering efficiency and thinking ahead of what is current. Most developers don’t have the same perspective that I have because most don’t or didn’t work on servers and so they don’t fully understand the limitations it can impose.

Those limitations may be the number of concurrent processes the server can handle or maybe the amount of RAM it can access. These physical limitation have to be factored in when building a website, if you don’t you can easily produce something that will bring most servers to a crawl and that it not fair on you or in the case of shared hosting – everyone else on that server. This is one of the primary reasons why shared hosting crawls during peak times, not because the server can’t handle the number of people visiting however many sites may be on that cluster of servers, but because most of the sites on that cluster are inefficient to begin with.

This is not a comparison of Thesis vs other Themes and Frameworks – that would be like comparing and apple and an orange, they may both be round and be categorized as fruits, but there considerable differences to set them apart.

I hope this review has been insightful and remember – your website is your online identity, so take your time and work towards making something beautiful. Quick fixes can be catastrophic in nature and benefit few – just ask Wall st.

Meet the Author

Matthew Horne

Matthew Horne is web developer who specializes in optimized development. He also builds custom solutions instead of reverting to plugins. Matthew Has a strong understanding of PHP, JavaScript, jQuery.

16 comments… add one
  • Chris Langille Nov 24, 2013, 12:42 pm

    I’ve done things with Thesis, that I would otherwise have never been able to do on my own, with another theme or framework and that’s no exaggeration.

    This could obviously change, but IMO there isn’t a framework out there that satisfies developers and at the same time, noob users, like Thesis.

    • Matthew Horne Nov 24, 2013, 1:55 pm

      I think Sean Davis has a pretty good framework but I am yet to test it. However for the major well established frameworks Thesis tops the charts.

  • Greg Nov 24, 2013, 4:27 pm

    I’m a brand new Thesis user. This is very helpful for me going forward. Thanks.

    • Matthew Horne Nov 24, 2013, 5:46 pm

      Excellent, I’m glad I can give you some real insight in to what thesis can do.

  • Sean Davis Nov 24, 2013, 5:30 pm

    Great write-up, man! It really shows how emotional the WordPress community is that in both your write up and the one I published a month after Thesis 2 was released, we both felt the need to address those who don’t care for Chris before getting into the theme details. It’s definitely necessary, though.

    I think what makes Thesis special is what you can do with it in special situations. As you already know, while I have no issues with using Thesis, I also use other themes and frameworks as well as build my own. Reason being, I’m finding that there is a significant amount of trade-off when I jump from one theme of preference to the next.

    With Thesis, the query boxes are golden. No one can deny it. What you mentioned about boxes vs. plugins… spot on. And there are many other things about Thesis that make it great. The only time I feel like I *don’t* want to use Thesis is when I just want a simple blog design that requires no custom boxes and nothing outside of the norm. In a situation like that, it’s not that Thesis is not good enough but rolling your own theme for the simplest of WP websites does indeed feel a little easier. I know Chris disagrees with that but you know… that’s how I feel.

    I think the community needs to stop being an emotional bunch of sissies and put things in perspective. Like you told Chris Langille above, I have my own framework. Still, I tell people straight up that nothing is more flexible or powerful than Thesis. The rest of the WP community needs to see that.

    If they choose not to use Thesis, that’s fine. But if it’s because they hate Chris, they need to have the balls to say so. Code vs. code, functionality vs. functionality… and just about every other technical aspect you want to compare, Thesis takes the crown. I seriously doubt there’s anyone out there who can *prove* otherwise.

    • Matthew Horne Nov 24, 2013, 5:51 pm

      Excellent comment there Sean, people need to drop the hate towards him and start looking at what he is doing. It is clear he is trying to solve long standing issues and limitations and that can only be good for the community.

      In many respects the only way for WordPress to improve in some areas is to adopt what thesis has done, example being how templates are generated and boxes for greater extend-ability.

      I take your point about not using thesis for simple sites and everyone has their ways, for me I simply love building efficient websites with thesis whether they are simple or complex, but that’s the beauty of choice.

  • Raaj Trambadia Nov 24, 2013, 6:38 pm

    Now that’s the power of Thesis. The users often think that “Thesis is just for developers and coders” – but guess what, it actually helps any newbie to make changes which would otherwise require to pay some developer.

    It hasn’t been long since I got my hands on Genesis (yep, I’ve always been the Thesis boy!), and I this is what I tweeted when a conversation of #ThesisWP vs #GenesisWP was burning –

    “…I’d rather start something from dropdown > Add Box ..than FTP > functions.php > add_filter ;)”

    I believe that clearly explains the difference between legends and current stars (something like the Beatles vs One Direction).

    Raaj Trambadia

    • Matthew Horne Nov 24, 2013, 6:50 pm

      I don’t know enough about the latest genesis to compare them. The last time I used genesis was 2011 because the client already bought it. Part of what was required of me was to optimize it and boy was that not simple. I couldn’t meddle with the core even though some of the issues I wanted to resolve we’re there and at the time genesis comprised of basically widgets and an options page.

      I don’t know what it is now, I know it’s popular.

      Arguably I feel a sense of monopolization by certain groups of WordPress, almost like conform or we try to do what Intel did to AMD when AMD was and still is an innovator.

  • Chris Pearson Nov 25, 2013, 4:51 pm

    Killer post, homeh. I especially love the comparison between Plugins and Boxes (the Message Bar example), as it starts to shed light on some of the thinking that went into Thesis 2.

    With Thesis, I’ve always viewed myself as the “developer for hire” for whoever uses my software. Unlike freelance development work, Thesis allows me to be an expert for thousands (and hopefully millions) instead of being an expert for a small number of clients.

    As you know, this responsibility comes with a TON of challenges—efficiency, ease of implementation, repeatability, and performance to name a few.

    In order to satisfy these requirements with a WordPress-based system, I had no choice but to create systems to solve the problems inherent to WordPress.

    As you mentioned, the structure of WordPress Plugins encourages developers to slop more and more “stuff” onto your site’s code to achieve additional functionality.

    For noob users, this isn’t a big deal, as they receive the functionality they asked for by installing a particular Plugin.

    (Though it becomes a big deal later on as they learn more and more about their site and start caring about performance and optimization.)

    However, as a developer, I have a serious ethical problem with junking up people’s sites and, more generally, doing anything in a sub-optimal manner.

    The bottom line is that I want to do things for my customers in the most efficient possible way, simply because [1] that’s the right way to do anything and [2] they are paying me to be the expert.

    That means I have no choice but to bring my A game every time, and that’s a challenge that drives everything I do. (I also love it, but I digress…)

    With websites, it’s not good enough just to achieve a particular outcome (like installing a bulky Plugin to add a simple message bar). Sales, search engines, and even your casual visitors are ALL primarily affected by the performance and optimization of your site.

    In fact, metrics continue to show that this is becoming more important—not less so—as time goes on and the Internet matures. As a developer with an eye on the future, I have no choice but to sweat the details when it comes to this kind of thing.

    Next, I want to address one thing you brought up in the article—specifically, the point about adding some custom CSS manually to go with one of your Boxes.

    In version 2.2, we’re adding a method (similar to the preload() method) that will allow you to tack on some CSS to the main stylesheet whenever your Box’s options are saved.

    Thanks to Thesis 2’s underlying structure, this kind of functionality is easy to add, and it yields gains for developers and users alike.

    Developers will be able to add CSS to the main stylesheet without having to explain anything to users, and users will get the functionality they wanted in a single step…and without having to give an ounce of thought to the technical implementation.

    Finally, thank you for writing this article. I’ve endured a lot of relatively baseless cheap shots since we released Thesis 2 (too early, I might add), but those never got me down because I knew that I had built something that would take a long time to “sink in” out in the wild.

    As performance and optimization continue to drive the website boat, articles like this one will help steer users in the right direction.

    And of course, Thesis will be standing by, ready for people to harness and build the most optimized website possible 😀

    • Matthew Horne Nov 25, 2013, 5:23 pm

      I was hoping you would say something about including CSS via a function, it is certainly something I would make use of and for boxes it would mean a complete efficient and optimized method of extending Thesis and for me that means clean, valid and again efficient functionality that minimizes the impact of adding that feature in the first place.

      Thesis can be extended in ways WordPress cannot due to the underlying code and the fact that it is 100% OOP.

      I look forward to future update and so far it’s been a great learning curve for me and has certainly improved my coding skills simply by paying attention to how Thesis works.

      I am currently working on a series of videos to show people how to build a simple website from scratch and hopefully from that people can further appreciate what Thesis can do as well as learn something about how there websites work, this can ultimately lead to better we masters who are arms with the right tools(thesis) and the know how to build efficient and clean websites.

      Like you I give a damn about the future and about optimization.

      Glad you liked the post, it can only get better.

  • Shemul Nov 25, 2013, 9:19 pm

    Thesis is awesome, no doubt. But seems more complicated for non-tech guy like me. What about Genesis? Do you have a compare?

    • Matthew Horne Nov 26, 2013, 1:43 am

      Hmm, depends on how you define complicated, you see anyone who wants to run a website should have at least the most basic level of understanding about how a website is built. Basically some HTML and CSS skills. It’s not 100% required but it really helps and both are easy to learn. Once Chris enables the CSS function for Thesis 2.2 then technically there will be no need for you to add anything, everything would be controlled by options and the CSS will still maintain its single status.

      Thesis can be made simple, but it can also be made complex and that depends on the project. However extending thesis is far more intuitive and simpler. You will certainly benefit from my videos once I have completed them.

      As for Genesis, I don’t know much about the latest version – but if they are still using widget type functions to build sections of the site then im sorry, its just not good enough for me.

  • Richard B. Nov 26, 2013, 5:58 pm

    Having hard coded numerous WordPress sites over the years, I find Thesis 2 accelerates development time, keeps things well organized, and changes that would require hours now take minutes.

    Thesis makes all of the money spent on WordPress development books a waste.

    • Matthew Horne Nov 27, 2013, 3:00 am

      It not only accelerates development time, it also forces you to code to a high standard. Which is always a good thing 🙂

  • Rick Lomas Nov 26, 2013, 10:05 pm

    Oddly enough I have just been pitching for a new job. It’s just building a site for a bar in The Alps. I thought I had gone in too high – I will build it with WP+Thesis2 – that same as I do everything these days! After reading this, I reassured myself that my client will be getting a top quality site that is streets ahead of anything else out there. Thank You DIY team, it is my fave product.

    • Matthew Horne Nov 27, 2013, 3:01 am

      You can be sure you are working with the best tool for the job. Thesis makes you work to build better sites and not be lazy.

Leave a Comment