The highly-anticipated WordPress 3.0 its first beta release. While the amazing core team of my favorite open source web app still have a long ways to go, I just couldn’t resist taking the beta for a spin on my test server. Below are my own first impressions of the new stuff- if you don’t care about my opinion, check out the beta announcement. Most of what I have to write about here is from the perspective of a site administrator who wants to properly manage their website content for their publishing needs, so please forgive me as I grossly overlook a lot of the more technical backend changes in 3.0.
WordPress 2.0 came out in February 2005. Several of the “point releases” since then have been major revisions, but none that the WordPress team has determined worthy of an increment in the major version number. When complete, WordPress 3.0 will accomplish a few major things that will take it into this new decade:
- A new default theme
- The merging of WordPress with the separate WordPress MU project, a complex customization of WordPress designed for sites hosting many users’ blogs at once (WordPress.com is a WordPress MU hosted blog service.)
- Custom post types and menu editor
New default theme: “Twenty Ten”
WordPress has included a default theme based on Kubrick since 2005. To this day, Kubrick is a quite good starting point for a normal blog theme, and plenty of people more concerned with their blog’s content than presentation have opted to keep the default theme. WordPress has evolved to support a lot more than blogs over the years, though, and site managers have had to work hard to get the site to present their information in just the way they want it. While custom themes make this a nonissue for anyone with enough resources to implement one, the new default theme in WordPress makes the app much more flexible out of the box for customization of unique websites.
“Twenty Ten” is widgetized to the brim, allowing WordPress widgets to be created and moved with drag-and-drop ease. Widgets are great because it empowers even nontechnical content producers to control a large amount of their site’s visual presentation. Like Kubrick, Twenty Ten also has a simple way to upload a custom header image.
The new theme also uses the HTML5 <!DOCTYPE html> doctype declaration, which will have all new WordPress installations using the new doctype unless they then implement a custom theme.
Menu editor
WordPress currently contains little out-of-box control over site navigation features, leaving publishers to either hardcode their site navigation into custom themes, or use third-party navigation plugins or theme features. The 3.0 version will bring a menu editor into the core application:
The editor allows publishers to easily create multiple navigation menus with a mixture of internal WordPress pages, category listings, and external web links. This feature is still undergoing heavy redesigns, and includes warnings of more improvements and UI changes to come. Once finished, custom WordPress themes will need to add support for this new feature. Old themes will work fine without it, but won’t enjoy the added functionality.
Custom post types
WordPress currently segregates all content into two classes: “Posts” for blog-like content usually presented in chronological order, and “pages” for more static content. While WordPress started as a blogging web app, it developed more and more momentum as a legitimate Content Management System (CMS) for sites much more complex and customized than the traditional blog hierarchy and layout. Sites wishing to present a lot of different kinds of pages have trouble adapting WordPress to their needs, often going to other CMS products better suited to complex page taxonomies.
WordPress publishers, groan no more! The custom post types feature will allow custom post types instead of the default “post” and “page” types. Unfortunately, I couldn’t find any of this new functionality in the administrative UI – I assume that the feature must have yet to be added to the GUI. (Or that I am an idiot who just overlooked it.) Regardless, web developer Konstantin has a great preview of the current custom post functionality, which must be implemented at the PHP code level.
Other neat stuff
- I noticed a few new lines in wp-config.php‘s unique keys section for salted hashes. If you think a “salted hash” is something you’d eat for breakfast, just trust me that it’s a good thing for security with your WordPress database. I don’t know if previous WordPress versions didn’t salt their password hashes, or if this is just refactoring of existing functionality.
- The “Export” feature can now filter exported posts by date, author, category, content type, or restricted status.
- My current site theme, a rather complicated one, didn’t break at all with WordPress 3 – it just didn’t support some of the new features that require hooks into the theme files.
- Initial setup now asks for a custom admin password. Previously, there was a counterintuitive automatic generation of a password followed by prompts to change it.
What’s missing / making me gripe
- Most of the administrative interface is unchanged. While it has become very usable overall, and I have trained plenty of nontechnical content managers to use it with ease, it still has some sections that need revision.
- As I mentioned before, custom post types must be implemented at the PHP level – meaning only skilled developers can do so.
- I would like to see an overhaul and extension of WordPress’s really nice media library features.
- Integrating custom forms and JavaScript is a real pain in WordPress, usually requiring the use of external plugins or tricky hacks.
Conclusion
WordPress has already been my favorite content publishing platform for a long time, and in the last few years it has become a legitimate and powerful CMS. Recent updates from the team have brought some awesome enhancements and new features, and WordPress 3.0 looks like it’s going to do even more of this than I’ve come to expect. I think that the custom posts and menu editor alone will propel WordPress to even higher popularity and usage on all kinds of websites.