Dougal Campbell's geek ramblings

WordPress, web development, and world domination.

WordPress 3.0 Multisite Terminology

One of the big changes coming in WordPress 3.0 is the merge of the WordPress MU code into the standard stand-alone WordPress codebase. When WordPress 3.0 is released, you will be able to choose to install it either as a single site, or in multi-site mode. With the migration from WordPress MU (MultiUser) to WordPress 3.0 (Multisite), I think there is a need for us to clarify some terminology. On the wp-hackers mailing list, I’ve seen several instances where people used the word “site” to mean different things, depending on who is writing, and the context of what they are trying to say.There is some overlap currently between how we discuss an individual site within the setup, versus the overall system which contains those sites.
Continue reading this article…

Recipe: Moroccan Chicken with Rice

Let’s take a break from the tech talk, and I’ll share a recipe with you. No, not a programming recipe, but the food kind. Yes, sometimes I cook. I generally like cooking, though I’m not so fond of cleaning up the mess afterward. Recently, we had some split chicken breasts that we needed to cook up. I thought about just doing a standard baked chicken, but I wanted something a little. different. After perusing a selection of chicken recipes on SimplyRecipes.com, and reviewing the ingredients we had on hand, I decided to try combining ideas from two different recipes: Moroccan Chicken with Lemon and Olives and Chicken and Rice Casserole.

In our case, I was cooking for seven people (myself, my wife, her parents, and our three kids). We had two family packs of chicken breasts (4 split breasts per pack, at about a pound per breast), so I knew I was going to have to adjust some measurements. I had to make some best-guess changes based on the amount of chicken I was cooking, and the ingredients I had available. First, here’s the recipe as I actually prepared it, and afterwards I’ll discuss what changes I’ll probably make next time we make this dish.
See the recipe…

jQuery API site using WordPress as CMS

I mentioned before that the jQuery project was going to switch from Mediawiki to using WordPress for their online documentation. They’ve recently pulled the trigger on that change, and you can now visit the new WordPress-powered site at: api.jquery.com

Performance and Backend

As mentioned before, we’ve switched away from using a MediaWiki backend to a new WordPress-powered backend. So far we’ve been very impressed with the performance. Every single page on the site is heavily cached and gzipped – with all media being served up from our CDN. We think you’ll find it to be a significant performance improvement over the old docs site.

via Pre Release Day 1 – The 14 Days of jQuery.

This seems to be an excellent example of a site using WordPress as a CMS. Each API method is created as a post, and they use categories liberally to make it easier for users to locate the methods they need based on usage. There’s also a nice AJAX live-search that narrows down results as you type. Obviously, they are using a custom tailored theme, and a permalink structure that produces easy to remember bookmarks like “api.jquery.com/slideDown/“. As an added bonus, they get user comments and an easier way to manage spam. Nice!

I imagine that there is more going on behind the scenes to help them manage the documentation structure of each API method, code examples, and demonstrations. Maybe some day we can coax them into giving us some more details about that.

Plugin Pages

I have finally gotten around to adding proper pages on this site to provide information about my WordPress plugins. It’s still a work-in-progress, but it’s at least at a point that they are useful. When I get a chance, I’ll document the methods I used to automate things. But basically, I’ve created a couple of page templates, and I’m using the Plugin Info plugin to automagically bring in plugin metadata from the wordpress.org plugin repository.

The main Plugins page lists each plugin, with the plugin name and version, number of downloads so far, and an excerpt of the plugin description. On each plugin detail page, you get the full description, changelog, download link, and other stats, such as the minimum and last-tested WordPress versions.

WordCamp Atlanta

As I begin writing this, Jane Wells is delivering her keynote at WordCamp Atlanta, speaking about the upcoming changes in WordPress 3.0. On the one hand, WordPress releases are ‘serial’, so an 3.0 release doesn’t necessarily have any bigger changes than when we move from 2.8 to 2.9. It’s just the next step after the 2.9 release. But, that said, there are big changes coming. One of the biggest is going to be the merge of the single-site version of the code and the WordPress-MU code, which will now be referred to as “multi-site” capability. Other new bits will include the “Core Plugins”, which will be a set of plugins cultivated and updated along with the main core code, changes to menu management, more support for custom post types, and a new default theme, dubbed ‘2010’. There will probably be a handful of other smaller changes, but not included at this time is the revamp of the Media Manager, which will probably wait until version 3.1.

With this release, the core team is trying to set a more structured, focused standard for how to get everything done. At the last developer chat, the scope of development was set to those features mentioned above. Setting a strict feature scope this early in the kickoff of a new release is a new thing, and I think it will turn out to be a good thing.

I’ve been wanting for a while to get back into more involvement with WordPress development, so I’ve volunteered (along with several others) to help out with the “Healthcheck” Core Plugin. This plugin will examine the configuration of your server and alert you to anything that might prevent certain features from working correctly, or that might cause problems in the future (such as old versions of PHP or MySQL).

In other news, there are going to be some updates to the wordpress.org website, including improvement to the Ideas forum, and some BuddyPress functionality, including user profiles for all regiestered users. WordCamp.org will also get some BuddyPress love and see new features.

As usual, the future holds some very exciting changes. But I’m particularly happy to see that there is not only progress happening in how the code is handled, but in how the community is shepherded. I think just about everyone would agree that WordPress would not be where it is today without its great user and developer community. So, if you have ever contributed a patch, reported a bug, suggested a new feature, or even just thanked somebody who has — you’re a part of the community. Thanks!

Merry Christmas!

I had hoped to post about some things before things got too hectic, but that didn’t happen. But I wanted to at least wish everybody a Merry Christmas (or which ever holiday variant you prefer), and a Happy New Year!

I’m speaking at WordCamp Atlanta

I’m pleased to announce that I will be speaking at WordCamp Atlanta next month. I will be presenting an updated version of the Jumping Into WordPress Plugin Programming talk that I gave at WordCamp Birmingham in September. I think I can squeeze some more details in, and hopefully give some more detailed examples.

If you saw the original presentation (or just the slideshow), and you think there’s something else I need to cover, please feel free to let me know. I already plan to give more in-depth code examples and show the standard plugin header data, among other things.

WordPress As a Documentation Platform

Twice now, the jQuery Podcast has mentioned that the jQuery project is going to migrate its online documentation from Mediawiki to WordPress. Which is pretty cool, because, I happen to like WordPress (duh). It’s also interesting, because when a lot of people build documentation websites, it’s pretty normal to choose a wiki. So, why would they want to switch an existing documentation resource from Mediawiki to WordPress?

One of the first factors is probably that the data in WordPress is more structured. In a wiki, you can add some structural information, but there’s not a lot of enforcement, and there’s only a few bits that help you with searching and such. Another factor is probably that it’s much easier to theme WordPress, so you can create custom page layouts depending on what type of content you are displaying. And lastly, I’d guess that ease of use plays a part. WordPress is very intuitive for many content management tasks.

This is also interesting in light of recent discussions started by Matt on the wp-hackers mailing list about the creation of a new Developer Portal. Many have stated that they think such a portal should itself be powered by WordPress. And with the recent addition of custom taxonomies and the upcoming improved support for custom post types, that certainly seems like a great project idea.

If there were to be a developer portal for WordPress, someplace where if
you’re first getting started with hacking on WP, building plugins,
creating themes, you could go and it’d have all the best resources in
one place, what resources do you think would be important to have there?

What do you wish you had when you first started developing for WordPress?

(Bonus points if it’s something that already exists, just scattered
around. :))

I’m not an Information Architect, so I’m not sure how I’d go about it. I would probably examine other documentation sites and try to discern what made some better than others. How do you think you would organize a WordPress Developer Portal?

Post thumbnails changes

If you visited my site in the last 9 hours and found it displaying nothing but an error message, my apologies. It’s part of the danger of running my site out of the WordPress SVN trunk (i.e., beta code), and taking advantage of new features.

My site automatically pulls in the latest code changes from SVN at midnight. And it seems that sometime yesterday, all of the post_image_* functions were renamed to post_thumbnail_*, and I failed to wrap one of my function calls with function_exists() protection. So from midnight until about 9:00am, my site was bombing out with a fatal call to a non-existent function. Oops!

Anyhow, I’ve fixed it (and added in the protective wrapper), so things are back to normal now.

Oh, and all of you who have written tutorials about how to use the new post thumbnail features in your themes? Time to rewrite them. 🙂