The open-source content management system WordPress turned seven years old last month. In its lifetime, it has attracted a devout following: More than 28,000 people download WordPress every day, with over 11.4 million active installations, including news outlets and corporate sites.
To commemorate the anniversary, WordPress is leaping forward this month with the release of Version 3.0, nearly five years after the debut of 2.0. The biggest change is integration with the previously separate WordPress MU (Multi-User) variation, which allows multiple blogs to be operated from a single WordPress installation and database.
The new version abounds in other new features while retaining the user-friendliness that has set WordPress apart from open-source alternatives Drupal and Joomla. (This review is based on the WordPress 3.0-RC3-15257 prerelease version, which came out a few days before Version 3.0; as far as I know, there are no significant differences.)
WordPress offers a Web-based interface for writing, publishing and consuming content, primarily text- and image-based content. It can be installed on any computer or server with at least PHP 4.3 and MySQL 4.1.2. Many hosting companies offer one-click installations of WordPress, though these packages are often a version or two behind the latest release.
Some basic configuration occurs during the installation, including naming the blog. Previous versions of WordPress automatically created an administrator account named "admin" with a randomly generated password. As a security measure, users were encouraged to create a new administrative account and delete the default one; otherwise, hackers would already know the username half of your log-in credentials. This security flaw has been rectified by allowing an administrator username and password to be manually defined during installation.
Incidentally, if you're already running WordPress 2.7 or later, upgrading to 3.0 is as easy as clicking the "Update Automatically" button -- but make a full backup of your current WordPress files and MySQL database first, just in case.
The most dramatic change in WordPress 3.0 is the ability to host multiple sites. Using one installation of WordPress 3.0, thousands of users can each have their own blogs under a common domain name.
Most users of this configuration are large-scale entities that have previously relied on WordPress MU. For example, Best Buy uses such a setup to give each of its retail stores its own blog and event calendar. WordPress divides The New York Times beats across multiple blogs. And Harvard Law School uses WordPress to offer a free blogging platform to any of its faculty, staff and students.
WordPress 3.0 comes with support for these blogs to exist as either subdirectories (example.com/blog) or subdomains (blog.example.com). Unofficially, it also supports multiple domains via a domain-mapping plug-in.
Since one blog is enough for many WordPress users, the default installation supports only one site. Enabling the multisite function requires users to manually edit the wp-config.php file, activate a WordPress network and then follow on-screen instructions to apply further changes to both the wp-config.php and .htaccess files. It's not as tedious as it sounds, but these steps constitute a sufficient enough barrier to prevent unsuspecting users from stumbling across the multisite feature.
When I updated my testbed from WordPress 2.9.2 to 3.0, I was told that the subdirectory option was only available to new installs. Unfortunately, my hosting plan was not set up to use subdomains, which requires adding a wildcard subdomain to your DNS records. The choice between subdirectories and subdomains is given only once, and there's no easy way to switch between them afterward.
Once your network is enabled, a new menu of "Super Admin" options becomes available. Here, some general configuration of each site in the network is possible: name, URL, users, etc. Which themes and plug-ins are available for these other sites' admins can also be selected on a global scale. Using these simple but powerful options, it's easy to create multiple blogs -- or to create a gateway through which users can register their own blogs, thus creating a dynamic network that grows as your audience does.
A blog network is best suited for multiple sites run by multiple users. For a single person or entity who wants to oversee multiple blogs without delegation, it does not work so well. There is no global dashboard where themes and plug-ins can be configured for each site; instead, the network's super admin decides which options to make available to the individual sites. The ability to enable and configure the sites is done from each site's own dashboard. A super admin can log into each blog and individually configure it, but the larger the network, the more cumbersome this becomes.
Plug-ins and themes
If you're just getting started with WordPress, Version 3.0 makes it easy to bring your old blog with you from another platform. Although it might look like the number of formats WordPress' importer supports has diminished, that's because the importer has been spun out into a modular system that allows the installation of just the formats needed for your situation. Compatibility with the most common blogging services, including Blogger and LiveJournal, come preinstalled; others, such as Posterous and Vox.com, are just a click away.
WordPress' plug-in repository offers almost 10,000 ways to modify how your blog works and looks. If you're a WordPress user, you've probably installed several dozen such plug-ins already -- and if you're upgrading an existing blog, expect several of those plug-ins to break. Although any core update can introduce a change that an outdated plug-in doesn't expect, this is especially true for an upgrade as significant as WordPress 3.0. (That said, every plug-in I tried proved compatible with the default installation.)
Bulk updating of plug-ins was introduced in a previous version of WordPress but was squirreled away under the misleading "Upgrade WordPress" menu item. Now plug-ins can be updated en masse from both the plug-ins page and the renamed "WordPress Updates" page, which lists available theme upgrades as well.
Theme upgrades are tricky, since power users have often edited their templates to add, remove or modify features; a single upgrade can wipe out all those customizations. That's why WordPress 3.0 also introduces improved support for child themes, which are a way to override a theme's default files without overwriting them. When the default files are upgraded, the child theme's modifications are preserved.
Historically, WordPress came with a boring default theme, and many users never customized their blog with a different look. The new default theme, "Twenty Ten," is similarly Spartan but includes the ability to easily add a new banner image and border color. These simple options should let even unimaginative webmasters imbue their sites with more personality without the trouble of finding or designing a new theme.
WordPress themes can be further customized with a robust and dynamic widget system, through which sidebars and navigational menus can be displayed. The latest addition to this feature set is the ability to create custom menus. Essentially, the site administrator chooses pages, post categories or external URLs to link to, and a widget is created that compiles these links. When defining the contents of several such menus, a series of horizontal tabs lets the administrator choose which menu to expand and work with. Unlike Web browser tabs, these tabs have a fixed width; if you have more menus than can fit on your screen, arrows appear that allow you to scroll left and right to find the one you want.
The new custom menus are a user-friendly feature, but not a particularly innovative one; such listings have always been possible in WordPress by creating a blank "arbitrary text or HTML" widget and then hand-coding an HTML list. However, users who don't know HTML or prefer a more elegant interface will appreciate this feature.
The basic act of writing a blog post has seen no overt overhaul. There are some renamed buttons and other minor tweaks, such as a sleeker interface for comparing changes between revisions of a blog post. Otherwise, the look and feel of the writing process is identical with the previous release, WordPress 2.9.2.
Hidden from the standard user is the ability to create custom post types and tags. A typical WordPress post is an entry in a chronological blog, with tags that serve as keywords. With WordPress 3.0, it's possible to create a database entry that represents not a blog post, but, for example, a film, with metadata that specifies the actors, director, film studio and release date.
The potential applications for this feature are vast, such as creating a cross-referenced and searchable film database, or a calendar that tracks event venues and costs, without a specific plug-in required for each purpose. But such applications are not obvious, which is likely why custom post types are not available out of the box, requiring either a plug-in or familiarity with editing WordPress's functions.php file.
WordPress 3.0 adds powerful features and additional complexity for those who go looking for them. Almost all the major changes are under the hood, while other changes are so minor that a casual blogger might not even notice the difference. Custom post types and multisite blog networks are versatile tools that are hidden from the average user but can give experienced administrators the tools they need to realize their visions.
However, these new features shouldn't get in the way of users who prefer the standard suite of tools. The basic package is no more difficult to use than before, and is in fact cleaner and more logical in many places. Power users will appreciate the additional features and tweaks, while others may consider this upgrade to be more evolutionary than revolutionary.
Although I run multiple and separate installations of WordPress, migrating them into a WordPress 3.0 network of blogs would prove difficult, if not impossible. That doesn't change the fact that WordPress 3.0 is a significantly more capable program than its predecessor. I'll upgrade my sites because each version of WordPress is more versatile than the last.
As with most software, official support for older versions of WordPress will eventually cease. If you're not already running 2.9.2, you'll want to upgrade to at least that to ensure a stable environment. Administrators with elaborate or esoteric needs should update to WordPress 3.0 immediately. Others without an immediate need could wait for the inevitable 3.0.1 bug fix, which will most likely come a month or two after the release.