Ryan Marganti over at SoulSizzle.com runs through what WordPress hooks are, and how you might use them including some simple examples. He reviews WordPress filters, edits to your functions.php file, the get_terms hook, and where you might find out more references about hooks. This is a nice introduction for WordPress theme or plugin developer newbie. Check out his other posts while you’re over there.
Lately I’ve been working a lot in WordPress and it has started to dawn on me how powerful the software is. I can only imagine what’s coming in WordPress 3.0. The power I’m referring to specifically is the ability to use custom fields with posts/pages. This basically allows an editor the ability to associate related information with an entry or record into the database. As a simple example, visualize splitting an entry into 3 variations: Full, summary, tease (or large, medium, small) and have every thing encapsulated in the same database record. Here on ChrisDigital’s Digital Designer Blog, I’m using this in the Bookmark links section to grab the “referrer”, “source” and their URLS from each post. This is very cool…
Foundation for a framework
In addition, anybody has access to the source code so you can blow up the whole posts/pages paradigm (by using your own code methodology) and still have access to all the built-in WordPress goodies. I can easily see an advanced developer using this code base as a framework to make a stripped down event booking system, inventory control catalogue or some other database entry system that needs an easy admin user interface for maintenance personnel. They can even change the admin interface for their purposes, or just find a cool admin theme like this one I came across recently.
If you’re not familiar with WordPress, check out WordPress.org for some background information. It’s safe to say I really like WordPress, and it reminds me a lot of a CMS that I really liked (despite a few quirks that it had) and used 3 years ago for a project. The CMS I’m referring to is CMS Made Simple. If you find that humorous you should realize that at CMSMS has been downloaded 750,000 times (as of October 2009) and it does have a loyal user base. However, CMS pales in comparison to WordPress’ recent update, 2.9, which has been downloaded 3,999,515 times (as of this writing) and that fact alone gives you an glimpse into why I switched. Nevertheless, my experience with CMSMS was very positive and I barely had to touch the documentation. It just all made sense, and I jumped in with both feet. I was up to my elbows in code, mucking around with templates in no time. I’m pretty much in the same place with WordPress right now.
Back to the powerful magic
As I was working in WordPress recently, I ran into a situation in which I needed to pull specific data out of the database about each page in a WordPress install and then print that information to the homepage for a theme I was tweaking. The answer was integrating custom fields into each entry and adding some minor edits to a few template files. When I finished, I got up from my desk and went to get a latte. I was done.
To get an idea of what you can do with this feature, Smashing magazine has a great roundup of some custom field hacks that can make your theme stand out. And as I mentioned in the intro here’s a great post about hacking the appearance of WordPress custom fields and how they function in the control panel. There’s no doubt in my mind that depending on the scale of your project WordPress makes a flexible CMS.
Jumping into WordPress theme development
Needless to say, you can find guidance for creating your own WordPress theme online. In addition, there are some powerful WordPress theme development frameworks you can experiment with that pretty much push theme development to the next level. Personally, I like to target my tweaks and be the originator of the code changes instead of adding another layer of coding standards/documentation that I will need to deal with.
Can I get a little help?
Half the battle of understanding any software or framework is finding help and figuring out the nomenclature and structural paradigms of folders and files. In this regard, WordPress is impressive; you just need to do a couple of Google searches and you have an answer to whatever is confusing you, ails your current install, or offers the right fix for the piece of code that you’re tweaking.
You can easily pull up resources in your Web browser such as WordPress’ codex, forums, developer community, plug-in architecture, and themes. It’s like this growing unstoppable force. Check out these video WordPress tutorials for example. This is a sample of how hard devotees work at WordPress evangelism. Eventually, you will be assimilated. You can even test drive it for free on their hosted platform.
Why go through all this trouble?
Why would you want to invest time into bending Wordress to your will? I’ll give you two reasons:
1. For now it’s open source with a reasonable learning curve that gets you up and running quickly.
2. And as mentioned above, WordPress’ admin control panel is pretty easy to use AND explain to your Web design clients for example. Which means they’re not calling you for very easy edits, and you can focus on big ticket changes. No more having to track and bill for minutiae.
Here’s a rundown on 5 approaches you can take to get your Web clients familiar with the WordPress admin interface.
Here’s a great question and answer thread from LinkedIn.com (account required) that details some plugin favorites by Linkedin members and issues associated with using plugins.