wordpress themes

Making theme options modular

Today I submitted version 1.1 of Museum Core to the WordPress theme repository for review. Originally this was going to just be a simple update with some bugfixes, but I had thought of a way to make it easier to build child themes that include some options settings from the parent theme (Museum Core) without having to include all of the options from the parent. It started out with this ticket I created on GitHub.

Now, the ticket evolved from that first sketch of an idea, and I ultimately abandoned the concept of using actions and remove_action to change what options get used. But the current approach is, I think, a pretty powerful way to approach theme options development so that things can be reused or abandoned in child themes and it isn’t something that I’ve seen other people doing. (To be fair, this is actually what’s described in the WordPress Codex, but I haven’t seen it in action on very many theme options pages, or any tutorials talking about how one would go about writing a theme options page, so I thought it was worth writing about.) And it reduces my entire theme options down to this code:

So let’s take a look at what we’re doing in ap_core_do_theme_options

First of all, I’ve pulled out all the code and put it into a new file called option-setup.php. This handles all the stuff that was previously where the _do_theme_options function is now but everything has been pretty drastically rewritten. First we have ap_core_do_theme_options which looks like this:

If you’ve tried or are currently using Museum Core, you’ll already know that the theme options page sports some tabs. So the first function we’re calling in _do_theme_options is the tab setup. This is a pretty straightforward function that just spits out the html needed to set up the tabs. The real meat is in the next three functions. We won’t look at every single function, we’ll just dig into the main highlights so you get an idea of what’s going on. Let’s peek at ap_core_general_settings which handles the, wait for it, general settings tab.

ap_core_general_settings looks an awful lot like ap_core_do_theme_options, with a bit of HTML thrown in to set up the table that’s going to hold the actual options. That uniformity is intentional, the idea is that you can swap functions in and out however you want. You can use your own modified version of ap_core_general_settings in your child theme, or you can do away with the tabs and just put all your options straight into ap_core_do_theme_options. Or you can mix and match options from the various settings tabs and create your own tabs, it’s up to you. Let’s take a look at what an individual option looks like now.

That’s got a bit more heft to it. But it’s still pretty basic. All I did here is pull the table row from the original theme-options.php and added it to this function. I’m using output buffering to store all the php/html as a variable and echoing the variable at the end which is what gets sent to the function calling this function (in this case ap_core_sidebar_option). I’m also calling the defaults and options from the database so our values are loaded and stored. This is done ad nauseum for each setting, so each setting gets called separately and can be isolated, grouped, cut out, whatever as needed by a child theme.

So what happens when I want to build a child theme and use some of these options? Here’s an example:

First what I’m going to do is start with a new theme options function. I’m keeping the 3 tabs from Core, but I’m adding a 4th tab. Since Core only supports 3 tabs, and I’ll need to set up the title for the fourth tab, I’m doing my own tabs. We’ll start by setting up the tabs. Remember, you don’t have to use the tabs at all; if you just want all of your options on the Theme Options page, you can just cut out the tabs function and then they’ll display normally, one on top of the other.

The two things that are changed are highlighted by the fact that the textdomain (‘museum-core’, ‘my-theme’) has changed. We don’t need to change the textdomain of the other tabs, because, assuming the text was translated in a language file, those would already be covered by the existing translation in Core — only the new translation strings need to be added (of course, none of this is necessary, really, if you don’t care about localization of your child theme). We changed “Typography & Fonts” to “Font Stuff” and added the fourth tab, “Custom Tab”. So far, so good. This is what it looks like:

Theme Options 2039 Localhost Test site 2014 WordPress


Now that we’ve got the tabs, and we’ve added the options pages that we’re pulling from Core, it’s time to create our new settings page. We’ll do this really minimally and just add one option. We won’t add a bunch of function calls (although we could), we’ll just put our option straight into the new my_custom_theme_settings function. It looks something like this:

Now, in order for this to be actually functional, we’d need to define some new options for our theme so we could store them in the database, this is just meant to be an example and illustrate how we’re able to still pull functions from the parent theme and mix them into our custom theme functions. Here’s what that new tab looks like:

custom tab

To summarize, what I’ve got is a modular way of calling individual settings that can be swapped in and out at will and replaced with custom settings (or not) however you want. If you have any thoughts or questions, feel free to post in the comments. If you’d like to dig into the source files, you can grab the latest version of Museum Core from GitHub. You can also take a look at the complete code from this tutorial on GitHub. And if you want to take a look at the files on your computer and hack them up, you can download the source files used to create the child theme in the screenshots here.

A new theme in the works

We spent the day today hammering out some ideas for a new Museum Theme.  We wanted to do something for those typophiles and writers out there; something minimalist with an emphasis on typography and a unique design.  The result is Ex Libris, which will be coming very soon.

Design options

Ex Libris will have 3 different modes (for the home page, at least).  The first (pictured above) is a standard page-style layout.  If you want your content to be the focus, and have a lot of static pages, this is the design for you.

Next, there will be a more traditional blog layout (pictured right).  This will give you a sidebar, post excerpts and a familiar post format.  You will also be able to use this on a blog page if you’re using a static page for your home page or the…

Magazine-style home page (below).  This option will feature your most recent post prominently, with older posts displayed in columns below.  We haven’t started coding yet, so you can be sure we’ll be adding other features when we are digging through the code.  One idea is to use the featured post area in the magazine layout for static home page content rather than a blog post.  Another idea is to allow the number of subsequent posts to be configurable from the options page.

Typographic control

The other thing we wanted to do with this theme is to give you, not only custom font embeds, but to allow you to choose what types you want to use for what parts of the page.  We’ll be bundling several gorgeous fonts and font families from the talented Jos Buivenga’s exljbris font foundry (which also inspired the name of the theme).  exljbris has earned many notable mentions on MyFonts and is responsible for the Museo family you see on this site (and on the recently redesigned jazzsequence.com).

We’re excited about this new theme, and can’t wait to share it with you.  If there are features or ideas for things you’d like to see included in this theme, let us know in the comments!

That Thesis Thing

Update 7/22/2010: Thesis adopts the GPL!

Over the last few days, the WordPress community has exploded into debate over one thing: Thesis and it’s restrictive, non-GPL-compliant license.  If you’re already familiar with the particulars of what Thesis is and what the debate is, you can skip the summary (to be honest, I’m sick of reading people rehashing the whole thing in order to provide enough background for casual visits, but I understand it’s necessry). I’ve taken the last several days absorbing all the information, the arguments on both sides, and held off writing anything about it until there was more information available.  As GPL-supported commercial themes developers, we’re a bit biased on which side of the fence Chris Pearson — the author of Thesis and DIYThemes — should be, the question is whether it is accurate to require him to comply with WordPress’ GPLv2 license.

What is Thesis?

Thesis is a WordPress theme, plain and simple.  What separates Thesis from some other commercial themes is its’ fairly exhaustive options pages which allow you to control various aspects of the front-end layout and design, as well as its claim of “airtight SEO.”  You have several pages of options allowing you to customize just about every aspect of the layout and colors of your site with an option to use custom-coding to expand it even more.  It promises “lightning-fast” page loads and encourages you to “just add killer content.”

Our initial bias

When we first started doing web design, particularly design based on WordPress, the internet was littered with requests to “customize Thesis theme.”  We took one look at what it was, and made a decision then to never work with it.  Our decision was based on this: if you have a theme that is built to offer unlimited customization options what’s the point of hiring a designer?  The entire point of Thesis is that you shouldn’t need a designer, and if you still do need a designer, obviously the theme isn’t doing its job.  At the same time, it’s easy to  understand without even looking what the pitfalls of a theme like that would be: the very fact that it offers unlimited possibilities is, in fact, more limiting than if it did not.  The typical user is not going to be able to look at a color wheel and say “yep, I want #EAFF63.”  They’re going to look at the range of 16 million colors, maybe pick a combination that looks horrid, and then ask someone else who knows what they’re doing to tell them what they want.  The entire point of hiring a designer to build a custom WordPress theme is that you don’t want to deal with the design elements or the coding, and would rather put your trust and faith in a professional who makes it their business to create attractive websites.  To us, customizing Thesis represented a conflict of interest.

What is GPL?

As stated on our GPL page, the GPL is a software license.  WordPress was forked from an earlier blogging platform that was no longer being developed, called B2.  B2 was released under the GPLv2 license.  Under the terms of the license, any derivative software, modifications, or forks must be released under the same license (or a later version of the license).  So, for example, WordPress could potentially be released under the GPLv3 license, but it could not be released under a more restrictive, proprietary license (like Thesis), or even an alternate open source license like a  Creative Commons license, BSD license or MIT license.  This is an important point, as there has been some discussion of WordPress simply adopting a less-restrictive license: they can’t.  By the terms of the GPL under which the original code was written for B2, WordPress cannot legally adopt another license.  Period.

Our bias towards the GPL

I’ve been a fan of open source for years, ever since I discovered that you could find a free, open source alternative to just about any application you were looking for.  I’ve dabbled more than a little with Linux and used a variety of different open source web software applications for different tasks.  When we finished building our Museum Themes and started getting the site ready for distribution, we were forced to think about licenses.  When Museum Themes was just an idea, licensing wasn’t something we thought about much.  We considered doing a user license and a developer license and a multi-use license.  But when it came closer and I was building up the site, I did extensive research on WordPress, the GPL, and the pros, cons, and debate about whether it’s even applicable (or whether that matters at all).  In the end, we embraced the GPL not because we believed, as derivative software, we’re required to use the GNU Public License or a GPL-compatible license ourselves, and not because StudioPress, WooThemes and many others have embraced it.  It came down to what we wanted to do with our themes and what we wanted our users to do with our themes.

I can — without question — understand not wanting people to steal your code.  We worked long and hard on these themes.  The last thing we’d want is someone else to sell them cheaper than what we are (or put them somewhere for free) after spending so much time on them and losing our fledgling business before it’s even had a chance to spread its wings.  So I can understand Chris Pearson putting a restrictive license on his software; he wants to protect his investment and his intellectual property.  On the other hand, we asked ourselves: what do we want our users to be able to do?  Do we want our users to take our themes and modify them to their heart’s content? Yes.  Do we ever want to limit or restrict how our users use our themes or in what context or otherwise prevent them from using it in any way they see fit? No.  We really don’t.  Do we want to be compensated for putting in weeks and months of hard work designing and coding and then maintaining this site and all future updates? Yes.  Would we be willing to fully offer support to users who purchased our themes through official channels? Absolutely.  Broken down into those terms, adopting the GPL seemed like a no-brainer, and a perfect fit for us.

So we have a partial bias towards the GPL, although we did explore all avenues when we were considering licensing for Museum Themes.

The argument

The debate comes down to this: Matt Mullenweg, founder of Automattic and WordPress, believes themes are derivative works, and therefore require a GPL-compatible license if you are planning on distributing your theme.

Chris Pearson, founder of DIYThemes and Thesis, believes the GPL doesn’t apply to themes, or to him, and doesn’t feel right about releasing his work under any license that requires you to provide the source for free.

There is no precedent in any United States court on this topic, though a some related cases have been tossed around.  According to Matt, in the United States, any time the GPL came into question on an issue like this, the major companies have backed down and settled out of court.

Chris Pearson cites a Florida lawyer’s analysis on the GPL as it relates to WordPress themes, and ultimately determines that themes are not derivatives, fall within the scope of “fair use” and, therefore, the GPL not only does not apply, but doesn’t matter.

Matt Mullenweg asked the Software Freedom Law Center (a pro bono consortium of legal experts with regards to the GPL) to analyse the way WordPress used themes and provide their analysis.  They determined that themes, based on how they interacted with the core WordPress software, were derivatives and therefore fell under the scope of the GPL (although images and CSS files didn’t need to be GPL explicitly since they had no direct relationship with the core WordPress functionality).

And so the debate has been.  Now we’re all caught up to right about where we were last Wednesday when two things happened almost simultaneously: 1) Bill Erickson, a WordPress developer and consultant was dropped from the list of WordPress consultants on the official WordPress site for endorsing Thesis and 2) Thesis 1.7 and 1.8-beta downloads were injected with malicious code.  This started some heated comments to get thrown back and forth on Twitter by both Pearson and Matt Mullenweg and their respective legions, culminating in both appearing live on Mixergy to duke it out (figuratively).  (You can listen to the replay, watch the whole thing, or read the transcript on Mixergy.)

As much as I’d like to, I won’t get into the actual debate and some of the classic comments that will likely be tossed around the internet for months, if not years to come.  The Reader’s Digest version is this: it amounted to nothing.  Both parties were pissed off (though Matt did a much better job of handling it diplomatically while Chris seemed to be verging on hysteria for the last half of the interview), but in the end, Chris Pearson said he would be “personally fraudulent” if he adopted any sort of license that went against his own personal beliefs (in adopting the GPL).  Furthermore, he said the GPL was one of those laws that wasn’t enforceable, comparing it to a Georgia law that prohibited blowjobs.

Despite claims of “character assassination” that Chris made on Twitter, really, the only character assassin by the end of the interview — if there was one — was Chris himself.  However, anyone who’s followed him for any amount of time would know that this is not a new thing.  He’s always been brash and argumentative, verging on nonsensical at times with his perpetual habit of getting lost in tangents and forgetting the question.  Here he is bullying a poor Thesis fanboy into pulling down the theme he created that was designed to emulate (at least in appearances) Thesis.  Here he is going ballistic about Matt Mullenweg giving credit to the open source community for the 7 year anniversary of WordPress.

Chris Pearson’s personality does not prove or disprove the issue of GPL violation.  It doesn’t look good, and certainly explains (at least to some extent) his resistance at adopting the GPL, but it doesn’t matter no matter how much his attitude seemed similar to a person walking into a grocery store and saying “I don’t really feel like paying five bucks for these apples, here’s one, which is what I feel they’re worth.”  At this point in the story, that’s where things would sit.

Discussion

Various theories and arguments have been tossed back and forth.  The, now standard, defense that themes are not required to be GPL and it doesn’t matter anyway by Mike Wasylik continued to be Thesis’ main defense.  He contends:

It’s just not enough to say that themes running on top of, and using function calls from, a piece of software are “derivative” of that software. If that were the case, then any software application would be a derivative work of the operating system it runs on – such as Windows, Linux, or OS X – which in turn would be a derivative work of the software hard-coded into the chips running the computer. For that is the way all software works, down to the bare iron – it sits on top of, and makes function calls to, the software layer beneath it, until to get down to the silicon pathways in the chip itself. No software could run without those lower layers, and nothing is truly independent of them. But “dependent” and “derivative” are not the same thing.

Programmer Drew Blas sums it up this way:

The long and short is that SFLC’s opinion could be applied to any software that runs on Linux. Meaning you could never have a closed-source software product running on the linux kernel (“Oh, your code calls fork()? GPL!”). It is commonly accepted that simply integrating with an existing product does not produce a derivative work. If your code is totally your own, the GPL has no say over how you license it.

However, WordPress’ lead developer Mark Jaquith has a well-written counter-argument to that the thesis to which is that “themes interact with WordPress (and WordPress with themes) the exact same way that WordPress interacts with itself.”  “They do not run separately,” he says.  “They run as one cohesive unit. They don’t even run in a sequential order. WordPress starts up, WordPress tells the theme to run its functions and register its hooks and filters, then WordPress runs some queries, then WordPress calls the appropriate theme PHP file, and then the theme hooks into the queried WordPress data and uses WordPress functions to display it, and then WordPress shuts down and finishes the request. On that simple view, it looks like a multi-layered sandwich. But the integration is even more amalgamated than the sandwich analogy suggests.”

I’m not a software developer, or a legal expert (this much should be obvious), but it seems to me, using the same Linux comparison, that this would be less like a single application running on the Linux platform (which would be allowed under the GPL if the application didn’t call any GPL-specific libraries or functions or include any GPL code) and more like an entire distribution of Linux (Ubuntu, RedHat, Slackware, Gentoo, etc).  Sure, for the 5 seconds it takes to boot up to GRUB, you’re free and clear, but everything after that is touched by the specific distribution, from the loading screen to the desktop environment.  Saying that could be released under a non-GPL license would mean that all the software used in that distribution would need to be proprietary — no GPL software could be used as part of the closed-license distribution.  It’s like booting up Linux and getting a Windows desktop instead.  (In recent history SCO attempted to claim copyright over Linux code, which would have resulted in Linux users and developers being required to pay a royalty fee to use it.  They lost.)

But then the plot thickened…

See, the derivative (or not) argument is an interpretation.  Now, granted, it’s an interpretation that Joomla! and Drupal both stand by, but still, it’s an interpretation, and whether it would stand up in court is the subject of much debate.  However, after a couple WordPress developers (Andy Peatling & Andrew Nacin) started picking through Thesis code, they found lines that were literally copied and pasted from WordPress into Thesis — a clear GPL violation.  That prompted a programmer, the aforementioned Drew Blas, to write a script that compared Thesis source code with WordPress and identified each bit of substantial code that was obviously lifted from core WordPress.  And that lead to the discovery of what has come to be known as the “copy pasta,” a chunk of code deliberately lifted from WordPress that included this comment:

/**
* This function is mostly copy pasta from WP (wp-includes/media.php),
* but with minor alteration to play more nicely with our styling.
**/

This was added by Rick Beckman (aka KingdomGeek) when he was working for DIYThemes, which he acknowledges on Matt’s blog.  Even the liberal “fair use” argument would no longer apply if large chunks of code were lifted from WordPress.  And this throws a major wrench in Thesis’ operation.  Because even if Chris Pearson removes the offending code (which he says he is working on), all previous versions of Thesis are still GPL.  And arguably, any subsequent versions of Thesis would be considered derivative works and therefore the GPL would still apply.  The only way to avoid the issue entirely would be to rewrite all of Thesis.  Good luck with that.

The thing is, Thesis isn’t even all that fantastic.  From a design standpoint it’s okay, but nothing phenomenally groundbreaking.  As a designer who has worked very closely with users, though, I can guarantee that putting a color wheel and allowing your users to choose the colors for their site is a monumentally bad idea (it’s why we don’t do it).  The problem is that all those options, all that unlimited possibility is overwhelming.  It’s why people buy Thesis and then hire a designer to customize it for them.  It’s failing to do its job.  Other themes, or theme frameworks, can do similar things without as much headache: ShiftNews by WPShift has a lot of the same sorts of customization options and Thematic by ThemeShaper has a solid framework upon which to build child themes.  For that matter, we took all these things into account when we were building Museum Themes, and provided ways to allow you to customize your blog design without making it look like this.  It was sort of the point behind Museum One.  Even then, though, we were careful not to put too much stuff so as to overwhelm casual users, and I think that’s Thesis’ main failing.

Honestly, I can’t see Thesis continuing to be a lasting one-trick-pony.  Increasingly, free and other GPL-compatible premium themes are able to match any level of originality or innovation Thesis may once have had.  And if 1.7 (and many previous versions) are GPL from the code that was copied from WordPress, then Chris Pearson’s worst fear may come true — someone re-releasing it for free, protected by the GPL, or else using it as a framework for another competing theme.  Chris Pearson was right about one thing: users don’t (generally) care about the GPL.  But that’s fine, because they don’t have to; the GPL only really applies if you intend to distribute your theme.  Additionally, it gives you permission to modify the code as much as you please (compare that to a typical Microsoft EULA which defines the terms under which you can use the software, and manipulating any core systemic functions or hacking the software to add customization options or additional functionality is expressly prohibited).  However, a look at Matt’s Twitter stream over the days since he and Chris debated on Mixergy gives evidence that people do care about software licenses, and they care if their theme violates the license under which the software it uses was released.  The cat is out of the bag, and there’s no way to shove it back in.  It will be interesting to see how this progresses and what effect it has on WordPress themes in general, and Thesis in particular.

12 Free WordPress Themes I Like (and you should, too)

Just because we built free WordPress themes and Museum Themes doesn’t mean we can’t appreciate the good work of others.  In fact, it’s through watching what’s going on in the greater WordPress theme community that gives us ideas, keeps us on our toes, and informs us of trends and what people are interested in.  Here are some interesting free WordPress themes that I like.

In no particular order:

1. P2, by Automattic

P2 is a revolutionary concept for a WordPress theme, namely — make WordPress act like Twitter.  P2 live updates allowing realtime commenting on posts.  Anyone with an account can post something, and, since it’s WordPress, what you can post ranges from a short tweet, to a full length post with multimedia content.  Matt Mullenweg even said that P2 changed the way Automattic communicated.

View Demo | Theme Homepage | Download

2. Modern, by Ulf Petersson

Modern has been around for a few years (when it was released in its final 0.9 version, the latest browsers were Opera 9 (beta), Firefox 1.5, and Internet Explorer 6), but it still looks…well…modern.  The reason is its minimalist simplicity which gives it a timeless look.  The subtle splashes of color against the mostly white and light-gray backgrounds give the theme a playful and welcoming feeling.

Theme Homepage | Download

3. Motion, by 85ideas

Motion’s dark, textured light and watercolor background and dark semi-transparent borders and frames tell me that this is a designer after my own heart.  It’s truly a gorgeous blog theme with a cool ocean-on-a-clear-day palette.

View Demo | Theme Homepage | Download

4. Pixel, by 85ideas

Another theme by 85ideas, pixel also uses semi-transparent backgrounds, this time playing with concepts of light and dark.  A mostly-dark theme, Pixel has a lot of the same design ideas as Microsoft’s Windows Aero, responsible for that attractive glass-like effect in Windows Vista and Windows 7.  Pixel is perfect for a tech- or design-centric blog.

View Demo | Theme Homepage | Download

5. Piano Black, by mono-lab

Piano Black is a stunningly beautiful theme that makes you feel like you’re inside the machine.  The use of light and shade, dark transparencies, and bright hover colors over the gray and black background allude to LED displays on dark plastic and metal.  This theme uses WordPress 3.0 custom menus and jQuery sliding effects for dropdowns, back to top links and a lovely image zoom feature.

View Demo | Theme Homepage | Download

6. Retromania, by Jay Hafling

We’re well acquainted with how hard a sell it is for niche themes to catch on.  The general rule is to appeal to the critical masses, get lots of hits, links and downloads, but it’s often at the risk of doing something really interesting and creative with design.  But by no means does that mean that they shouldn’t be done, and Retromania’s kitchy 50s throwback feel is definitely worth checking out.  He even has PSD source files available to download if you don’t like the default header images (of course, you’d need PhotoShop or something else that knows what to do with a .psd).

Theme Homepage/Demo | Download

7. Urban Life, by Jay Hafling

Another one by Jay Hafling, Urban Life shares Retromania’s light grunge, but rather than being vintage-centric, this one has an inner city vibe, with a city skyline in the header (silhouetted in the footer) and a striped band in the header and behind the sidebar boxes evocative of Warning! signs or caution tape.  Urban Life also has a built-in contact form (some configuration required), which lightens up the load on your site by eliminating the need to pull in a plugin to do that for you.  For those inclined to work in Photoshop, he also has his Photoshop source files available for this one as well.

Theme Homepage/Demo | Download

8. Mimbo, by Darren Hoyt

Darren Hoyt’s name is known in the WordPress theme community, and part of that is a result of this theme.  Mimbo is an oldie-but-goodie, packing dual-navbar action, configurable sidebars, and a home page layout that could make lesser news sites weep.  For developers, it can be used as a theme framework, upon which child themes can be built.  Darren Hoyt is also responsible for TimThumb, the little script that’s been pretty much single-handedly responsible for displaying post thumbnails on blog pages until WordPress added that feature in 2.9.  Now almost 3 years old, Mimbo still holds its own in magazine-style themes.

View Demo | Theme Homepage | Download

9. Dark Zen, by DailyBlogTips

Dark Zen is a minimalist theme suitable for just about anything you could want to use it for.  It has a simple, stylish design with a spacious sidebar, built-in social bookmarking and room for adding banner- and sidebar ads.  If you’re looking for something to use as a theme framework for something new, the bullet-proof layout of Dark Zen is a good choice.

View Demo | Theme Homepage | Download

10. Structure, by Organic Themes

Structure knocks my socks off.  It’s simultaneously bold and minimalist, with huge post thumbnails and multiple columns.  In that sense, it’s similar to Mimbo with a bigger featured content area, but it’s taken to a whole new level with the jQuery slider for featured posts (only available in the premium version).

View Demo | Theme Homepage | Download

11. The Morning After, by WooThemes

The Morning After is quite possibly my all-time favorite theme, ever.  The story goes that the author, Arun Kale, surveyed WordPress users and asked what they’d like to see in a magazine-style theme and The Morning After is the result.  Just a few weeks ago, the Arun contacted WooThemes and asked them if they’d be interested in taking the reigns for developing and maintaining TMA, and it is now, officially, a WooTheme.  TMA has a unique, slim header image that can be customized for different pages.  It’s got different styles for Asides (now called Updates) and built-in post thumbnails.  It’s got a little configurable description area above the sidebar on the home page and different page layouts depending on what you’re looking at.  It is, in short, awesome.

View Demo | Theme Homepage | Download

12. Mansion, by Graphpaper Press

Wow.  I’ve seen some interesting grid layouts for themes, and I’ve seen some awesome photography themes, but this one tops both.  Bearing more in common with an image gallery than a blog, Mansion creates a mosaic of images pulled from your posts that can be sorted by category.  It also comes with a page template for your blog, which takes a similar approach to your posts.  Images gently light up when hovered over, as does the navigation area.  And all of it sits on top of a black background, giving it a lightbox-like effect.

View Demo | Theme Homepage | Download

Of course, I can’t end a post on free WordPress themes without so much as a nod at our own free themes area.  And as I said, we often take inspiration from other themes.  So, you think there’s some ideas brewing for new themes in our devious little brains?  As Sarah Palin would say, “you betcha.”

Gee, there’s a thought…

One of the things that’s frustrated me about a lot of premium WordPress themes I’ve had experience with is that they leave the user hanging.  You see the demo and it looks awesome.  Configurable category displays, a featured content gallery, room for adsense, customizable navigation, even a video embed in the sidebar.  Maybe you even know what themes I’m thinking of.  You say, gee, this theme is swell, sure I’ll shell out $50 for it and make my site look freaking awesome!

You get the theme home, you’ve got a nice blanket and some food laid out for it, and you sit, and you watch, and you wait for it to do tricks.  But the theme. doesn’t. move.

Little did you realize before you purchased the theme that there was all this back-end configuration that needed to be done, possibly even changing some code in some of the actual page templates it came with (you don’t really know what a page template is, but if it ends in .php, it’s not something you want to mess with).

I had a freaking brilliant idea today.  Instead of allowing users to install a theme, broken, on their site, why not tell them how to set it up?  When you bought that new MacBook Pro, got it home, and booted it up for the very first time, it didn’t just drop you at a desktop without any guides or information on how to get started.  No, it probably played a video or had some helpful informational screens that said “here’s where stuff is, here’s what you need to do now, after this is done, you’re all set.”

Digital software — especially software that wasn’t purchased in a box but rather came in a zipped archive — is not the same as the VCR you bought from Circuit City in the 90s that flashed 12:00 constantly until you read the freaking manual and figured out how to set the time.  It’s easy to just ignore instructions, especially when they’re hidden with dozens (if not more) of other files.  You can’t blame people for not wanting to dig through stuff, for just wanting the thing to work when they install it.

That’s always been the approach we’ve taken to our Museum Themes, but it wasn’t until I started working on a theme we had released over a year ago (largely based on some of the same themes described above) with the intent of making the setup process more idiot-proof that the idea hit me: why not tell the user what they need to do after installing?  I believe it will solve a lot of the problems that people had with our 1.x versions, and it’s one of the things that will make this 2.0 version (which I’m planning on releasing later this week) kick ass.  It’s stupidly easy to code, too, just find a variable that’s sort of necessary for the theme to work right and say “if this isn’t set, then this person hasn’t set the theme up yet and gets a welcome screen.”  Rather than making the user go through code to set those category columns, let them set it (and change it whenever they want) in the back-end along with everything else.

In fact, I like the concept so freaking much that I’m going to make it standard across all our Museum Themes.  Right now the theme comes with a readme file, but what if you extracted the zip, uploaded the files, activated the theme and…?  You mean you didn’t read the readme file?  From now on, you’ll extract the zip, upload the files, activate the theme and when you look at your site it will tell you where you need to go and what you need to do, with a handy link to the readme file for setup instructions and a link to the theme options page.

Effing brilliant.  Why hasn’t anyone thought of this before?

We’re GPL!

Last night, I spent some time reading about the GNU Public License (GPL).  There’s been a rich and heated debate for years about how the GPL applies to “premium” (generally defined as commercial, for profit, or otherwise non-free) themes and/or how it doesn’t apply/shouldn’t apply/doesn’t matter.  At the heart of the argument is this:

  1. WordPress is free.  Free as in “free beer” and free as in “free speech”.  You can download WordPress for free, you are free to make changes to the core software, install whatever themes or plugins you like, use it for any purpose you wish, or create new themes or new plugins for it for free (or for profit, but more on that later).
  2. Themes take a lot of hard work.  There’s a lot of free themes available (a plethora, in fact), but if there wasn’t a market for “premium” themes — non-free themes that often include support, advanced customization features, custom code, etc — companies like StudioPress, WooThemes and DIY Themes (the makers of Thesis) wouldn’t exist.
  3. Designers and developers — understandably — want to protect their intellectual property.  In the case of a download that can easily be transferred to multiple computers (and, potentially, multiple computer owners), the ownership of their intellectual property is one of the few things they can really lay claim to and there’s very little they can do (other than exclude support and publicly criticize) if someone copies their theme or uses it in a way that they don’t approve of.  It’s precisely the easy transference of  digital files that gets the RIAA all bothered about piracy: it’s really easy to copy an mp3 or a zip file from one computer (and therefore from one person) — who may have actually paid for said file — to another (who probably didn’t).

But here’s the key element: WordPress is released under the GPL, and, as a component of the WordPress software — like it or not — by the terms of the GNU Public License itself, your theme is also under the GPL.

Here’s the difference between open source and closed source: open source means everything in #1 above — you can take the code, change it, use it however you want, and put it back.  You can even sell it.  In fact, the GNU Public License actually specifies that you can — if you so desired — take something, change absolutely nothing at all, and sell it (so long as the you include a copy of the GPL in the copy you’re selling).  So I could take WordPress software — which is free as in beer — and then sell it to someone else.  I wouldn’t, of course, that’s kind of dumb, and, if anyone bought it, it would essentially be taking advantage of the fact that they didn’t realize they could get it for free (probably).  The point is that the GPL is not saying you can’t sell your stuff.  There are companies selling open source software — or extensions of open source software — all over the place; Red Hat Linux is one example, Joomla!’s commercial themes is another.  What the GPL is saying you can’t control what people do with your stuff.

Closed source software, on the other hand, disallows tinkering.  It means that, while you may own a copy of the software (or in the case of non-GPL WordPress themes, the source code), you really only own a license to use said software, and are subject to all sorts of rules and requirements about how you can use it.  Let’s use Microsoft Word as an example; you purchase a copy of Word.  You install it on your system.  You can’t change the software to, say, make it more visually appealing (not outside the confines of what’s built in, anyway).  You can’t add functions to make it behave differently.  You can’t get into the code to see how it works for purely educational or research purposes.  You can’t get into the code, period, since you’re given an executable and not the original source.  Let’s take another example: Google Apps.  I can use Google Docs absolutely free.  What I can’t do is take the Google Apps software and make it work on a computer or device that is completely disconnected from the net.  I can’t customize how it works.  I can’t add features.  I have, literally, no control at all over the software since the software resides on Google’s computers, not mine.  In fact, I don’t even have direct access to the data that I create with the software since it’s stored on Google’s servers!  If Google lost my data, I’d be completely at their mercy with no way of getting it back.

Open source encourages a rich interaction of users, designers and developers working together to make the software better.  Closed source may allow that in certain contexts (such as a developer preview or public beta) but, on the whole, excludes a wider community involvement and potentially alienates tinkerers who would otherwise have been able to learn from and contribute to the project.

What I decided last night was: why are we even having this discussion?

I mean, if we can take WordPress, a platform we love working with and designing for, and build custom themes for individuals or a wider audience through our Museum Themes and make a living from it, why fight it?  Why say you can’t use the software in this or that way?  I understand protecting your work, and I understand that, from a legal standpoint, there isn’t really all that much you can do to a theme developer who decides to release their software under a license that is not compatible with the GPL because almost anything a theme designer does can fall under the umbrella of “fair use”.  I just think it’s a little counter-productive.  It’s like taking the WordPress software and selling it.  Sure, those themes are probably great to use and they won’t disappear anytime soon, and I don’t think the folks that make them are “evil.”  I just think maybe they’re a little lame.

We will never tell you what you can or can’t do with our themes.  And, if you purchased them from this site, we’ll even help you do what you want to do.  You can read more about our stand on free software and the GNU Public License on our GPL page and you can find us, along with many other theme developers, on WordPress’s own Commercially Supported GPL Themes page in the Themes Directory.

Museum Themes have arrived!

That’s right.  We have liftoff.  After months of planning, hours and hours of coding and hacking, many sleepless nights,  and countless time spent researching the various options out there and figuring out where we fit in a sea of “premium” WordPress themes, Museum Themes is officially launched.

I won’t spend a whole lot of time tooting our own horn because, honestly, I’ve written quite a bit of horn-tooting over the last month and I want to be frank with you, our valued potential-customers.  But I’m gonna go out on a limb and say that I think we’re doing something that no one else is doing.  And we’ve looked.  We’ve followed Revolution as they rebranded to StudioPress and launched a side business making custom WordPress theme for Real Estate agents.  We’ve checked out WooThemes with their nifty widgets and wide array of different themes.  We’ve looked at Thesis.  We watched the launch of WPShift.  There’s a lot more out there.  Despite all the different options and developers, the thing that bugs us the most is that none of them — none of them — speaks to us, personally, to our style, personality, creativity, experimentalism.  And you know, maybe we’re all alone.  Maybe we’re the only ones who will be into these themes and no one will buy them.  And if that happens, well, we tried.  We won’t give up, we’ll keep building new themes, and add new designs that we think are cool and think maybe you will, too.  But we have a sneaking suspicion that we aren’t alone.  We have a feeling that there are at least a few other people out there with a similar design sense, a similar taste for designs that truly have personality.  And, if you’re out there, we’re here for you.  Yes, you.

As far as we can tell, these are the only themes with truly creative designs.  And I’m not knocking the StudioPress themes or the WooThemes or anyone else.  There’s a place for all of us.  Because the reason why these themes don’t exist is because it’s much easier (and dare I say, probably more profitable) to design for a wider audience.  While something that’s more middle-of-the-road may not look as stunning, it’s also more likely to push enough of the good buttons with enough people that you’ll get a lot of people to buy it.

We’re not looking for those people.

We want the artists. The creatives.  The writers.  The musicians.  The geeks and otaku and obsessed.  Those are the people we’ve always worked best with in designing web sites and those are the people — you are the people — we are designing these themes for.  We might not have mass appeal, but we’re much more interested in making art anyway.  And we want you to make art, too.  And we want to share our art with you.

That’s what Museum Themes are about.

Since it’s launch day, we couldn’t let such a momentous occasion go by without some kind of special offer.  So, all day today, if you buy one of our themes and enter the coupon code gallery-opening during checkout, you’ll get $5 off as a thank you for jumping on the bandwagon on the first day.  And make sure to follow us on Twitter, fan us on Facebook, and even invest in us on Empire Avenue — we’ll be active in all those social networks offering special discounts and promos just to those fans.  Oh, and TwitPay — we’ll be offering specials for people who’ve claimed their account on TwitPay and buy our themes that way.