Custom WordPress Hooks and Filters in Thematic 0.6

Thematic version 0.6 is an upgrade I didn’t intend on making so quickly and there’s been some changes. Here’s a weird one: when every other WordPress theme author is desperately trying to add more and more settings to their theme options page, I took an option out. Even weirder: it made the theme better. How? I started adding custom hooks and filters to Thematic.

This is something I’ve wanted to get started on for a while so I’m glad it’s finally here.

Custom WordPress Hooks in Thematic 0.6

There are two new custom WordPress hooks in Thematic version 0.6: thematic_belowheader() and thematic_abovefooter(). You can find them in header.php and footer.php, respectively. I'm really excited about this small—but powerful—addition to Thematic. Almost anything you can think of can now be loaded into the theme, just below the header and just above the footer, by taking advantage of your Child Theme functions.php.

Now, I haven't done anything exciting or creative with this yet—that I can show you—but here's the outline of some functions that'll get you started on taking advantage of the new hooks. Remember, these go in the functions.php of your Child Themes.

// Hook into the area below the header
function childtheme_helloworld() { ?>
     <h2>Hello World!</h2>
<?php }
add_action('thematic_belowheader','childtheme_helloworld');
// Hook into the area above the footer
function childtheme_goodbyeworld() { ?>
     <h2>Goodbye Cruel World!</h2>
<?php }
add_action('thematic_abovefooter','childtheme_goodbyeworld');

There you have it. That's all you need to get started with the Thematic custom WordPress hooks. Fool around with it. Try it out with WordPress conditional tags. See what you can come up with.

Now for the filters. I think you'll be impressed with the power filters give you over your theme. Continue reading

How I used a WordPress Child Theme To Redesign My Blog

Problem: You want to take advantage of WordPress Parent-Child Themes but you want more control than is usually afforded through CSS alone. What about adding a Favicon? Or a link to a custom stylesheet for IE fixes.? Or editing the menu? How do you do that without messing around with the original Parent Theme?

Solution: You do what I did. I had this exact same problem redesigning ThemeShaper to take advantage of my WordPress Theme Framework, Thematic. I’ll tell you how I solved it and give you a better idea of the power of the functions.php file in WordPress Child Themes.

When you're done reading this post you should be well on your way to taking full advantage of the power of WordPress Child Themes and redesigning your blog the smart way—leaving the original parent theme files untouched.

And if you haven't heard about WordPress Child Themes before, make sure you take a look at my post on How To Protect Your WordPress Theme Against Upgrades. I go through a quick primer on them and how to get started using them (along with some useful tips on using Plugins).

First, Make a Functions.php File

Currently, only two overriding files are recognized in WordPress Child Themes, style.css and functions.php (unless my proposal for 2.7 makes it in). You can do a lot with CSS alone but with functions.php your theme can interact with WordPress just like a plugin.

First things first: make a file in your Child Theme folder called functions.php and add the PHP opening and closing tags to the first and second line (<?php and ?>) using your favorite text editor (I use Smultron). Make sure you don't have any extra lines before or after these tags. We're going to be inserting the following snippets of code on the lines in-between these tags. Now you're ready to make your WordPress Child Theme sing.

… not literally, of course. That would be annoying. Continue reading

A Revolution in Theming: WordPress Theme Frameworks

WordPress is exceptionally easy to Theme—but it can be better. WordPress can be a smart little CMS for most websites—but it can be better. How? WordPress Theme Frameworks.

A while ago I asked a whole bunch of smart people what they thought the future of WordPress themes would look like. I also asked the whole WordPress community (also very smart) to think about a new default theme for WordPress. It’s putting those two things together that’s led me to the following statement:

The future of WordPress theming is in Theme Frameworks. If WordPress included three or four theme frameworks—not default themes—in the core it wouldn’t just be the easiest CMS to theme, it’d be the smartest.

Thinking of Theme Frameworks as something different from Themes could be revolutionary. And they don’t have to be included in the WordPress core to change how we think of WordPress themes. But take a look at my proposal for powering-up Child Themes in WordPress 2.7 and some of the current benefits of using them. And while you’re at it, check out Thematic.

Thematic is my own personal WordPress theme framework that I’ve released to take advantage of all this. Sort of an über-theme that puts the best of everything in one place so the core of it will never have to be messed with. It really leverages what you can do with WordPress themes: everything that needs to be changed is either an option (even the footer credits!) or a widget, leaving customization to the CSS in a Child Theme.

And that’s Customization that’s easy to make—for developers and enthusiasts—since the Thematic CSS is modular. The Reset, base Typography and Plugin styles have been separated from the basic look and ready to be used independently by Child Themes.

What do you think about WordPress theme frameworks? Sound Exciting? I think so.

How To Protect Your WordPress Theme Against Upgrades

Problem: You’ve finally found a theme you like but you want to modify it. The modifications are pretty simple but what happens when you want to upgrade the theme? Do you really want to go through all those files again hunting down the changes? Don’t you wish you could just upgrade and be done with it?

I’ve been there. I’ve done everything the wrong way at least twice. Learn from my mistakes. Here’s the right way to modify your theme and protect it against any future upgrades. And don’t worry, it’s really simple. As it usually turns out, WordPress is ready for us and has done most of the heavy lifting.

Continue reading