Continuing off from my previous post, I’m now going to discuss one of the most important parts of building a WordPress site: your theme.

Wordrpess Themes DirectoryBy default, WordPress has its own built-in themes that can be utilized. TwentyTwelve is the current one, but in the past they’ve also released TwentyEleven and TwentyTen, both of which are still often used for WordPress themes.

Of course, most people don’t want to use these themes. The WordPress Themes Directory is a great place to look for free themes, with nearly 2,000 themes available. Alternatively, you can go out and buy a premium theme and install that. ThemeForest is the most common place to get premium themes.

Finally, of course, there’s always custom themes. Creating custom themes is something I do fairly often, though I also go through installing and configuring existing wordpress themes as another option. In most cases, I just take a PSD given to me, rip the images out of it, then create the theme with that. Another variation of custom themes is Child Themes. Namely, if you wish to utilize a pre-existing theme but still make modifications to it.

On that note, let’s explore these in more detail.

Free Themes

The Shadow RealmRegardless of whether you’re using Free or Premium themes, the process is the same. You take an existing theme, install it on your website, and configure its settings to your liking.

Free Themes are likely still a valid alternative, especially when it comes to built-in wordpress themes. I would never recommend using TwentyTwelve, TwentyEleven, or TwentyTen, but you can use them if you want to. The only reason I’m using TwentyTwelve on The Shadow Realm is because I haven’t had time to build a custom theme for it… yet. Even then, I still made modifications to the default theme, something I obviously should not have done, but its only planned to be a temporary situation.

wp_easel_theseparationI’d still recommend checking out the WordPress Themes Directory if you REALLY want a free theme; the default WordPress themes really don’t cut it without heavy modifications. Sure, you could use it, but why would you? You’re just going to make your website look exactly like everyone else’s.

Instead, go through the WordPress Themes Directory and pick out a decent theme. They may not necessarily be as great as premium themes, but they still get the job done. The Easel theme looks pretty decent; I set this website up for my dad (which I’m still trying to get him to walk me through the final configuration for it). There are other resources for free themes if you like, as well. Its not my part to look through them, but remember, Google is your friend (in before they take over the world, of course).

Premium Themes

Naturally, Premium Themes are next in line. I’m quite often asked to take a premium theme and install it on a website, far moreso than I’m ever asked to install a free theme. Actually, the only free theme I ever installed was Easel for the site I mentioned above. Whatever the case may be, Premium Themes are quite popular. They also have their ups and downs, though.

In many cases, I have found that Premium Themes do not work as they intended. And when I say “as they intended,” I mean they do not work out-of-the-box. In other words, without some serious configuration they WILL NOT WORK properly. This is excusable for free themes, but NOT when you have to purchase it. So, you purchase a theme, and then you have to make some serious updating in the backend to get it looking right?

KloutFireThat defeats the purpose of buying a theme. Themes are supposed to be easy to use. Customizations are fine, but it shouldn’t take numerous adjustments just to get the thing to work. I had this problem with the November theme on the KloutFire website I set up before. Eventually I got it looking pretty good, but it took more work than it should have ever required.

Just be warned: When looking for a good theme online, you WILL encounter problems like this. Hopefully it won’t always be such a major issue, but watch out. Typically premium themes are easy to use as expected, but that’s not always the case.

Child Themes

When working with premade themes, there’s always a time you’re going to be asking for ways to add additional customizations to your theme. Unfortunately, this can be difficult to do; you should NEVER edit a theme’s core files (well, other than a theme that’s yours) otherwise on upgrade those customizations WILL get overwritten.

Raffle PromoOn Raffle Promo, I managed to get around that by using a “Custom Javascript” plugin, but Javascript isn’t always a valid solution. Its less and less common for people to surf the web with Javascript disabled, but it does happen. The theme I was using did have CSS customization options, at least (thank God)..

What really would’ve helped at first was setting up a Child Theme, though. Only problem? Last time I tried with Kloutfire, things didn’t go so well. After learning of additional things I needed to do on this site, I finally went back and tried to set it up again. This time, I managed to succeed. Honestly, I don’t know WHAT I did wrong the first time. Its possible I saw some of my settings messed up and freaked out, I don’t remember, its been so long.

In any case, for a child theme, the only thing you really need is a style.css formatted like this:

Theme Name: TwentyTwelve Point Two
Description: A Child Theme of TwentyTwelve.
Template: twentytwelve
@import url(../twentytwelve/style.css);

“Template” refers to the parent theme of the current template. “twentytwelve” is the theme that is being set as the parent. @import is required to import the parent’s style.css file.

Its notable, though, that not all themes can work with Child Themes. If you’re at a point where you’ve got a theme you want to make modifications to, try setting up a child theme. Just remember that you may lose some customization options when you switch themes. The only thing I noticed on Raffle Promo is that my custom menu was no longer set as the Primary menu. The menu itself was still there, I just had to re-assign it.

Custom Themes

Finally, the last section. Custom themes are probably the most popular. I’m often asked to either create new custom themes, or modify existing ones. When I get to create them myself I tend to have less problems, though that doesn’t mean I’m without problems when it comes to them. I’ve had my share of issues with custom-made themes I was asked to create. Regardless, I tend to have more problems dealing with themes I did not create.

CPSOne thing that I see a lot of people doing repeatedly, and through multiple clients, is incorporating specific posts onto a page to fill in content. The worst site I’ve ever seen this at was CPS, and at one point I had to go through and convert all those junk posts into actual normal content blocks. What’s worse, though, is that it wasn’t just small blocks of text on each page; this was done on almost every page and for separate SECTIONS of the content. Needless to say, I was NOT happy about this one (though I fixed it relatively easily).

When developing custom themes, individual posts should NEVER be included on a page. If its content that needs to be editable, and it doesn’t look like it should technically be a page itself… make that area a WIDGET. That’s what I do. Widgets are actually far more versatile than regular posts, anyway. If it doesn’t seem like it should be a widget, then there’s one other perfectly valid alternative:

query_posts( array(
'post_type' => 'page',
'post__in' => array(923))

Rather than using posts, you can use pages at specific points during a page template. Posts should remain wholly and exclusively for the BLOG. Period. I’ve seen posts being incorporated into pages on several sites I’ve worked with, and its extremely frustrating trying to work out the details to keep this from interfering with the blog page.

When I do sites, I tend to try and follow set standards. Obviously, I’m trying to follow the standards of my client, but also my own standards for themes. I try to use widgets for any sections that should require widget content. Blog pages always should show social links under each post. The best wordpress standards should be taken into consideration.

I have discovered some problems using TwentyTwelve as a basis, though. This made even worse by the fact that the client I was working with (not specifically the one who directly hired me) was rather picky about specifically how close to make the site to the original PSD (in this case, inDesign). I don’t know who in their right mind came up with em measurements, but I for one can’t stand it. rem isn’t much better, either.

The fact that TwentyTwelve uses this as a base makes it all the more annoying. Responsive design looks to be far easier to pull off than trying to make liquid or fluid layouts. And my client expected the site to be a pixel-by-pixel replica of the design, which really didn’t help matters any. I thought I got it very close to the original design, and honestly, I hardly saw a difference. In the past it never really mattered much; get it as close as possible, but its off by a bit, its not that big of a deal.

Spacing, font, font size, dimensions, literally everything. Just take this into consideration when building designs: clarify exactly what the client is looking for. And in many cases, wipe out every instance of fluid or liquid dimensions if you need to just to ensure its exactly what you need.

Yes, its possible to make everything next-to-identical, but its incredibly difficult, especially considering that WordPress reuses code very often. When you’re constantly shifting sizes and dimensions around, you’re going to have to make numerous modifications you otherwise didn’t have to do before and aren’t saving as much time as you should have been able to in the long run.

Whatever the case may be, I’ll be back later to discuss my choice of plugins when building new sites.