10 Things You Need to Know About WordPress 3.0

129164777472495202

By now, you’ve probably heard the hype about WordPress 3.0. You may have even seen the WordPress 3.0 preview webinar I did not too long ago.

This is somewhat of an odd release as I can’t point to 10 individual new features in WordPress. However, I can point to several very large new features that have been hyped enough already. Inside each of these new major things, there are several components. So, let me break the ten things down into three groups. We’re a little behind schedule (thanks to Jane Wells’ cat below) but I think the wait is worth it.

The Merge! WordPress and WordPress Multisite Together At Last

Back at WordCamp San Francisco last year (which is happening this weekend and I will be at), Matt Mullenweg announced that WordPress and WordPress MU would be merging into one singular software package. I covered that shortly after the announcement. The reasoning was that all of the WordPress core was already in sync with WordPress MU and MU simply had a bit more functionality added to it. Most of the code is the same. Why split resources and developers?

WordPress 3.0 is where this merge takes place.

Language Changes

While this is not a new feature in WordPress, existing WordPress MU users may find themselves “thrown” by new terminology involved in WordPress 3.0. In WordPress MU, we had the concept of a “Site” which was an installation of WordPress MU. Within a Site you could have one or more blogs.

In WordPress 3.0, we have the concept of a Network (which was a Site in WordPress MU) and under a Network, we have Sites (which were Blogs). Sites are Blogs. Networks are Sites. Site Admins in WordPress MU are now called Super Admin’s in WordPress 3.0. Making things complicated, we don’t call it WordPress MU anymore. We call it putting WordPress into Multisite mode. Complicated, eh? New WordPress Core Developer, Andrew Nacin, describes this terminology nightmare.

Enabling WordPress for Multisite Mode

Something that is bound to be confusing for users who expect to simply install WordPress and get all the benefits of Multisite out of the gate are bound to be confused by the fact that there is no apparent “switch” to turn it on. When you install WordPress 3.0, it will be in standard WordPress mode. In order to flip the switch, you have to add a new constant to your wp-config.php file. It’s easy, just add the following and save:

define('WP_ALLOW_MULTISITE',true);

Once this is done, you’ll find a new menu item called “Network”  in your Admin under Tools. Visit this page, enable Multisite and follow the instructions. You may need to add new configuration settings to your .htaccess file and wp-config.php, but WordPress will provide these lines for you to copy and paste.

Note: As with WordPress MU, you may need to make server level system changes to enable WordPress to handle subdomains. This is not an easily solved problem and caused heartburn with MU users and will likely continue to cause heartburn with WordPress 3.0 users as well.

Upgrading from WordPress or WordPress MU 2.9 or below

A lot of people, including myself, were concerned about upgrade paths when the Merge was announced. I should have known not to be concerned. WordPress has taken great care for years to ensure backwards compatibility and we’ve done the same thing here. If you’re on WordPress or WordPress MU, you will be able to install WordPress 3.0 and upgrade seamlessly. WordPress MU installs will become WordPress 3.0 with Multisite enabled and single installs of WordPress will retain all the benefits of standard installs of WordPress.

WordPress as a CMS: Custom Post Types and Taxonomies

Developers are already very excited about the new APIs available in WordPress 3.0. Specifically, Custom Post Types (which received initial support in WordPress 2.9). This is a very important set of new features because it finally – finally! – brings CMS support to WordPress. For the first time, we don’t have to simply pretend that WordPress is a CMS…. it can have all the CMS qualities of a Drupal or Joomla.

Custom Post Types

We initially talked about custom post types in WordPress 2.9 but in WordPress 3.0, the feature is fully vetted and able to be utilized. With a simple function in a plugin or theme, developers can create new post types (such as film reviews, podcasts or FAQs), provide entirely familiar UI (similar to posts and pages), etc.

You can find all the possible options under register_post_type() in the wp-includes/post.php file.

Custom Taxonomies

Going hand in hand with custom post types, you can also create custom taxonomies. Taxonomies are bits of metadata and most people think of them in terms of ‘categories’ and ‘tags’. Built into WordPress already are three taxonomies – categories, tags and link categories (which most people think about). The difference, from a technical perspective, between tags and categories is hierarchy. Categories have hierarchy so a category can have a child category, etc. Tags are flat and have no hierarchy.

You can create custom taxonomies with the register_taxonomy() function which will create UI automatically. All the options for custom taxonomies can be found in the wp-includes/taxonomy.php file.

Note: I have created a plugin and made it available for download that demonstrates how to use custom taxonomies and post types.

User Facing Enhancements

There are two major user facing enhancements. When I say two major user facing enhancements, I’m not being sensational. These things are killer and I think you’ll be excited.

Menus

Wow, this has been a controversial new feature. Mostly because it almost didn’t make it into WordPress 3.0 and users have really, really wanted it. Those familiar with the navigation creator in many of the WooThemes will be familiar with the new Menus feature in WordPress. This is because we worked early on with Woo to adopt their premium theme feature, which was very good, into the WordPress core (a fantastic case study on how premium theme developers can work directly with the WordPress core team).

The idea is really simple: Compose any menu with any hierarchy out of category archives, pages and custom links. Once a menu is created and saved, theme developers can enable support for this feature with the following line:

enable_theme_support('nav-menus');

Dropdowns are automatically created and semantic CSS markup allows style modifications easily. You can also create multiple menus (let’s say, a secondary navigation piece) and use them as sidebar widgets or hardcode them directly into a theme.

Default theme… no, no default theme… no, new default theme!

Well, you know all those free themes over on the theme repository? Yeah, most of theme are heavily modified versions of Kubrick, the default theme for WordPress. Theme people would take the code base, modify it and make it their own. They might upload it to the theme repository. Problem is, they would not be updated with the new stuff that would go into Kubrick. That and Kubrick sucked as a theme.

Well, as of WordPress 3.0, there is no more Kubrick. There also is no more Classic theme. Now, we have a new theme called twentyten. Yes, that means next year, we’ll have twentyeleven.

Twentyten is a very complex theme. It should not just be duplicated and hacked up. We want themers to adopt the child theme method of doing things. This is important because as changes go into twentyten, your child theme will inherit those changes.  Here’s a good starter for how to build child themes.

Note: If you are upgrading from previous versions of WordPress and have a child theme based on Kubrick, don’t delete the default theme. If you do, you can still grab the theme from the theme repository.

WordPress Admin Enhancements

The WordPress Administrative interface has also seen enhancements. Jane Wells is our usability expert in the WordPress developers group and has done quite a lot of work. Minor enhancements include an all light-grey style color scheme (as opposed to the dark grey header bar). This does seem to be better on the eyes. Additionally, the themes interface also has a new “tabbed” interface.

Custom Backgrounds

Built into twentyten is a new custom background feature. The cool thing is, theme developers can include this feature in their own theme. Simply adding this function to your theme functions.php will add a new menu item to your Appearance menu that allows for quick modification of the background image on the blog.

add_custom_background();

The Extras

Of course, not everything can fit into the three main areas of feature adds. Some are important and just don’t fit anywhere else.

Admin Username

Many of the security problems that have occurred in WordPress’ history have been a result of the administrative username being admin. This has not been selectable or changeable without hacking the database and changing the admin username there.

In WordPress 3.0, the username can now be selected on install. Here’s a hint…. don’t name it admin. :)

For a complete list of expected changes, see this Codex page.

10 Things You Need To Know About WordPress 2.8

WordPress 2.8: Search for Plugins

WordPress 2.8 is the latest installment of the WordPress platform, scheduled to be released on Wednesday, June 10. Millions of sites are powered by WordPress including the BBC, CNN, the NFL, the New York Times blogs, and that’s just a few of the big names.

Ok, so there’s a new version.  So what?  There are a number of massive improvements which will make WordPress even easier to use than before, however most of the new features are under the hood. Mark Jaquith, a core WordPress developer, is calling it the “Snow Leopard of WordPress” – in other words, on the surface, it doesn’t have much new but there are radical updates under the hood to make it run faster and give developers more options.

Faster Load Times

The first, of smaller features, but very important features to me, is the ability to compress both external CSS files and embedded CSS, and the same with Javascript, both embedding and external files. Why is this important? It decreases both load time for the user and saves bandwidth because of compression. It’s a win-win situation for everyone. But, this is just one of the major enhancements I’m excited about.

Now Easier to use Widgets

Yay for a new widget panel!  No more “add this widget” and gets added and having to browse the different sidebars.  Now you can drag and drop, and auto-save, on any of the registered sidebars for your theme.  See below for the example of what it looks like.  It’s a lot more useful and much easier to use now.

WordPress 2.8: New Widgets Page

Plugins, Plugins, Plugins, Plugins

The second major update that is clear to see is the plugins page layout.

I run a test site that updates code every few hours from SVN so I can see what is going on with all the new code being developed and committed, so something I noticed quickly was that the Plugins page layout changed dramatically. You’ll notice that the way the plugins are grouped together now is different than it was before. With the upgraded Plugins layout, it was quite difficult to see the important plugins, so the lead developer working on it, Ryan Boren, was kind enough to add a “Per Page” option for Plugins. Now, you can easily find all your plugins on a single page by changing the Per Page option to a higher number than the plugins you have. For example, I have 55 plugins installed, so I set mine to 60 and I can easily see all my plugins.

Plugin Search

Another great addition to the WordPress codebase in 2.8 is enhanced plugin search.  For a long time, and still, plugin search is not that great.  2.8 will help fix a lot of those issues and give users a greater opportunity to find what they are looking for.

WordPress 2.8: Search for Plugins

New Admin Schemas

Diving into some of the admin features, the blue color scheme received some love and has some updated features. The grey color scheme’s icons were also updated. Overall, the admin style has stayed the same though, since Automattic conducted the user experience testing back in October 2008 to draw up a new administration theme. Have they done a good job? I honestly think that yes, they’ve done a great job with it and it’s fully functional now. I was hesitant at first when they made the big change, but I really like it now.

Along with upgrading the admin schema, you can now select how many columns you want to display.  It’s really easy to move the various dashboard widgets around to customize the dashboard to exactly how you want it.   You can easily select which widgets you want to show too.  Whether you care about plugins, recent news, or you just care about posting quickly, you can edit it to your liking.

New WordPress Dashboard

Search for Themes

Not only was the plugins browsing area upgraded, but you can also now view and search for themes!

WordPress 2.8: Search for Themes

Can’t Upload with Flash? Let’s Fix That!

For all those users that were having issues with Flash, Firefox, and uploading images, those problems should go away.  WordPress 2.8 comes with PHP SWFUpload 2.2.0.1.

Editors Note: I wish the Flash uploader would be applied to more than just images. For instance, the WordPress importer could use some love – particularly for large export files.

Automattic Highlights

A few of the highlights that Automattic is pointing out is the new ability to drag and drop, and save, in one action, widgets for your theme. IIS 7.0 URL rewriting is now supported as well, giving a little love to the Windows users. These are just a few of the highlights.

Editors Note: If you use the Thesis theme there are some incompatibilities. Anthony Ferguson has the fix in advance of an official update from DIYThemes.

Upgrading Using the SSH Method

If you’re into really quick plugin upgrades, you might already be using a script running on a cron job that upgrades your plugins every few hours.  But, there’s a slightly less geeky way of doing it.  The SSH2 method of upgrading is now more functional.  It had some problems in 2.7.x, so I helped work with the developer of that area and we made it more functional and operational.  I wrote a tutorial about how to upgrade WordPress and plugins using SSH that works seemlessly.  For my personal blog, I just click upgrade and the next screen I see is that it upgraded successfully.  I never have to enter my username or password.  It’s all stored on the server.

Other Updates

Digging into the nitty gritty, the backend received some updates as well. Dropping some database columns, for those of us that are uber geeky, which will help keep the database running smoother and cleaner. For the full list of geeky updates, check out the Development, Themes, and Plugins updates.

10 Things You Need To Know About WordPress 2.7

Vertical Menus

The saga of cheatsheets and reference sheets continues with this outline of the hot new WordPress 2.7 which will be released soon. Like WordPress 2.5, this is a radical release. Like WordPress 2.5, the bulk of the changes affect the WordPress admin. Unlike WordPress 2.5, however, this is not merely an update of the backend but a complete rebuilding.

Termed “Crazyhorse” at the beginning of the cycle, the WordPress admin is the result of complete thinking outside the box, research and user testing. The concept began as “Let’s throw everything away that we assume to be proper and correct and see what we can come up with when we have no preset conditions”.

The result is a semantically, aesthetically and structurally different WordPress than you’ve ever known before. This is not your grandma’s WordPress!Vertical Menus

Vertical Menus

The first thing you will notice when you login to WordPress 2.7 for the first time is the new menu layout. Without a doubt it’s going to throw you for a loop and you’re going to hate it. As usual, I’ve run development versions of WordPress for much of the development cycle and let me tell you that this change, early on, almost pushed me away from WordPress – a move that would be earth-shatteringly huge.

Props to Jane Wells, Liz Danzico and the Happy Cog and the entire Automattic team for really creating a sexy interface. The new vertical paradigm is a direct result of the Crazyhorse testing, though, and it has ultimately grown on me.

The navigation is comprised of top-level menu items taking users to the most commonly used pages within the subset. For instance, clicking on Posts will take you to the Write screen. Accessing other menu items in the expandable subset can be achieved by clicking the down arrow for the subset.

Primary navigation items are Posts, Media, Links, Pages, Comments, Appearance, Plugins, Users, Tools and Settings and are intuitively grouped together. The Vertical navigation bar can also be minimized to the left for those that like a pristine feel.

Dashboard

The second thing you will notice, after the initial shock of the vertical menu, is the dashboard. Semantically, the dashboard is extraordinary. By clicking on the gray “Screen Options” button in the upper right, you can gain access to the Dashboard configuration panel where you can check and uncheck the modules you want displayed in your own dashboard. Incidentally, this is also a per-user option now, so each of your members can configure this in a way that makes sense for them.

picture-5

In addition, plugin authors now have much more flexibility in developing modules (dashboard widgets) for the dashboard, eliminating complicated semantic problems that existed before for developers.

QuickEdit and wp-admin Comment Reply

picture-61WordPress continues to try to make it simple for bloggers to get in and get out with as little impact or effort as possible. Enter the QuickEdit. Besides the fact that every post has quick access links to common activities, there is a new QuickEdit link under each post title on your “Manage” screen. QuickEdit gives you access to most of the “non-content” portions of a post such as author, post title, tags, timestamp, etc.

In addition to QuickEdit, there is also quick comment replying. Yes, this means you can do it directly from within wp-admin. This is particularly useful for people who get lots of comments and prefer to live within their admin screen. The beautiful thing is, by responding in this way, you will feed right into threaded comment replies (which I’ll talk more about in a bit).

Configurable Layouts

Taking a page from the new iGoogle and many years of configuration options from My Yahoo! etc, the entire dashboard and the post write screen can be customized to preference. That means every module and widget can be dragged and dropped, re-arranged and in some cases even removed. This is important because bloggers operate in different ways, have different tendencies and different needs.

For my purposes at Technosailor.com, for instance, Excerpts and tags are very important. As a result, both of these modules are prominently positioned above the fold to the right of the content box. Some themes rely heavily on the use of Custom Fields, so bloggers using these types of themes probably will want to have the Custom Fields quickly accessible.

Note: Plugin authors providing any additional modules to the write screen really need to ensure their plugin is compatible with the new paradigm. In fact, this goes for all plugin and theme authors. Your world has likely been altered. Modules added to the write screen could never be repositioned before, so unless you’ve been developing in parallel to WordPress 2.7 development, your plugin will need to be updated. Also note that the functionality of the plugin itself is probably not affected, but the repositioning is. Nothing that will break a blog, but something that won’t fit in with the new admin concept.

Threaded Comments and Comment Paging

Threaded comments have been around for several years in the form of a variety of plugins. With the advent of commenting systems like DISQUS and Intense Debate, comment threading became more common place. It only made sense that threaded comments would become part of the core offering and denotes the first major innovation to the comment system in WordPress, well, ever.

The core development team didn’t stop there, though. Some folks get crazy amounts of comments per post (I’m looking squarely at Liz and Erin), so to ease the pain of mile long pages, WordPress has created Paged comments. That is, comments can be broken down into groupings of comments for easier digestion.

Note that to use these new features, theme developers will need to now support the new

1
wp_list_comments()

for comment threading and the

1
previous_comments_link()

and

1
next_comments_link()

template tags. Review the default theme for example usage.

Media Page

WordPress continues to push ahead on media management. In WordPress 2.5, they gave us a new Flash-based image uploader and galleries. While all this was useful, it was rather difficult to manage images without uploading photos and media into a post (even if that post were to be tossed after the upload was done).

picture-81

It was also difficult to manage that media after the fact. Which post was this one image uploaded to? Hmm.

Now Media has its own management page, where bloggers can do all their uploading, editing, etc.

Update: It was drawn to my attention that the media page is actually new in WordPress 2.6. False Alarm on this, though the new administrative interface makes it much more accessible and usable than before.

Complete Plugin Installation and Management

Possibly the biggest leap forward for this release is in plugin management. For years, bloggers have asked for a way to manage their plugins without having to use FTP and muck around on the server in an environment they didn’t know anything about.

Regardless of your technical expertise, I’m sure you are going to find the plugin installer a lifesaver. It is now possible to search and browse the WordPress plugin repository from within wordpress admin. Search by tag cloud, keyword search or simply browse popular plugins. Based on the new plugin upgrade technology brought about in earlier releases of WordPress, you can now install a plugin directly as well.

In addition, you can do an entire WordPress upgrade now using this same technique. When you get the nag that a new update is available, give it a whirl. Enter your FTP server, username and password (it’s not sent anywhere!) and do an automatic upgrade. But do make a backup before you try it, just in case something horrible were to happen, as Murphy dictates it sometimes can.

And as an additional bonus, if your server supports the PHP ssh2 PECL module, you can get SSH/SFTP installs as well which is actually even more secure.

The keen eye of the developers among us may have caught the blatant inclusion of PHP5 functionality, a marked – and overt – departure from the PHP4 only mantra that has ruled WordPress development since its inception.

Sticky Posts

Bloggers have been calling for “sticky post” functionality for some time. That is, the ability to designate a post as “sticky” and keep it at the top, regardless of how old it is.

WordPress has now added sticky post ability which includes the addition of the new conditional template tag

1
is_sticky()

.

Nathan Rice has a fantastic write-up on sticky posts in WordPress 2.7.

Template Tags

As mentioned throughout the previous eight highlights, there are a variety of new template tags.

1
wp_list_comments()

,

1
previous_comments_link()

and

1
next_comments_link()

all deal with the new commenting system. The

1
is_sticky()

conditional tag is used with the Loop,

1
$wp_query

and sticky posts. Use for styling, perhaps.

Not yet covered is the

1
wp_page_menu()

tag which will output a list of pages, generally in unordered list format, that can be used for creating stylized page navigation elements.

Finally, yours truly contributed

1
get_search_form()

which I hope is widely adopted by theme developers. Currently,

1
searchform.php

is included in a theme and is generally a typical form for search. It’s also usually ripped directly from the default theme. It just works.

This behavior remains. If searchform.php exists in the theme, it will be used. However, theme authors can now use the

1
get_search_form()

template tag to do the same thing. And it is pluggable by filter for those who’d like to create plugins that hijack the WordPress default search.

Comments API

Most users will not get the benefit of this immediately, because none of the offline blog editors support this functionality… yet (though the WordPress iPhone app undoubtedly will completely support all of the XML-RPC API, including comments, immediately). However, the API has now been built to allow offline editors like Windows Live Writer or Marsedit to perform comment moderation and editing from an offline client.

With this new functionality, it is in essence opening up even more of WordPress to be managed offline. Desktop apps, web-apps or even mobile devices can now be turned into full featured offline blog management. Score.

Bonuses

I don’t usually offer bonus material. It’s 10 things, right? Right, but this time is different. There is so much under the hood to be excited about, so let me tease you with a little bit of it.

  • New tag management page
  • Close comments on old post
  • Semantic CSS classes throughout
  • Buggy 404 page fixes… Does not report Page not found when a legitimate author archive, for instance, is loaded but the author has no posts. This has been an annoyance to me for years and I finally decided to submit code to fix it.