Tag Archives: WordPress Releases

Aaron Brazell, Featured

10 Things You Need to Know About WordPress 3.1

Happy New Year, everyone. WordPress development on version 3.1 is wrapping up (Currently it’s in Release Candidate and should be released early in 2011)…. which means, it’s time for another edition of our 10 Things You Need to Know About posts.

This is a bigger release than was originally planned. It was supposed to stay small and set the stage for a larger WordPress 3.2 release later in the year. That release will require PHP 5.2 (make sure your host supports it now… We do at WP Engine. WP 3.1 did turn into a larger release than expected, but I think you’ll be happy. So without further adieu.

Network Admin

if you’re running WordPress in Multisite mode, or have used WordPress MU for a while, you may find yourself alarmed by the conspicuous lack of a Site Admin/Super Admin menu that has been situated at the top of the Admin menu. Never fear, though it looks like this has gone the way of the dodo, in fact it has been relocated into a separate dashboard area accessible from the new “Network Admin” in the top right of the WordPress Admin. Notably, when you click on this link, you are taken to a new dashboard for Network management (and that link then changes to Site Admin to allow quick access back into the normal WordPress admin. Also note that, like the previous Super Admin menu, this link is only viewable (and by proxy, accessible) to users who have been designated as Super Admins. This change allows for additional separation of content production and administration and allows for blogs (Sites) to be managed individually and the Network to be managed separately.

Post Formats

Perhaps one of the most talked about features in WordPress 3.1 are post formats. Post formats have been implemented in a variety of ways for years. The idea that some content is different (and should be rendered differently as a result) has gone way back. A prime example of this was the concept of “Asides” – or little blurbs that were often simply links or short posts that were off topic, not really worth a full blog post or whatever. Now, with a bit of code in a theme functions.php, you can enable any number of 9 different formats: aside, chat, gallery, link, image, quote, status, video, or audio.

In this paradigm, theme developers can target specific CSS and layout structure to each of these post formats. This enables rich user experience and high quality layout without prejudice toward the most common type of content… text. If you aren’t sure what each of these types of content are, I refer you to the Post Formats section of the Codex which has a list.

In order to enable a theme with one or more of these formats, add the following line to the theme functions.php file:

add_theme_support( 'post-formats', array( 'aside', 'gallery' ) );

This line enables new UI in the post edit
screen that allows for you to designate a post with a specified format. For a thorough write-up on this new feature, go read the post format reference from my friend Lisa Sabin-Wilson.

Internal Linking

Have you ever gone through the torturous process of adding links to your own site to a post you’re writing? You have to go find that post from a different tab or window, usually via search or scrolling through potentially pages of content to find exactly what you want? Yeah? Me too. As a result, WordPress has added Internal Linking as a feature to WordPress 3.1.

This feature, only available when using the Visual Text Editor, allows you to add a link as you always have, or choose from already existing content on the same page. Yeah… that easy. Simply click the typical link button, then click on the arrow to
expand the “Link to Existing Content” section of the pop-up window. Pretty neat!

Import Overhaul

In advance of WordPress 3.2 and PHP5 dependence, we see yet another improvement that rewards WordPress users who utilize hosts using PHP5. The import routine has been rewritten from the ground up with efficiency in mind. While the old importer used regular expressions to parse through the WordPress export file (XML), this caused really bad efficiency problems.

Now, using native XML parsers, the WordPress import can process files much more efficiently. Additionally, similar to the file system transport API that is used by the one click installer and upgrade routines, WordPress goes through a series of checks to find the best method for XML parsing available on the server, thus a progressive enhancement for PHP 5. The first check is for SimpleXML (PHP5-only) followed by XML Parser (used in PHP 4) and, if neither of those two libraries are enabled, it falls back on the old, antiquated regex parsing.

Editorial Comment: I was hoping for a rewrite for 3.2 to both the exporter and importer that would handle everything in JSON (a much more lightweight plain text file format), perhaps optionally, instead of XML. XML parsing by nature, regardless of SimpleXML or XML Parser, is quite expensive in terms of CPU cycles and efficiency.

Theme Filter

WordPress.com users are probably familiar with the theme filter that those bloggers have had access to. With Theme Filters, users are able to quickly drill down on possible themes to install and use based on criteria such as number of columns, features, etc. To access this, simply click on the Feature Filter on the right side of the themes page to display all the options that are available. Note for Theme Developers: In order to make this useful for bloggers, please ensure that your theme style sheet headers include a Tags header similar to this:

Tags: white, yellow, light, one-column, two-columns, fixed-width, custom-colors, custom-header, custom-background

Advanced Taxonomy and Postmeta Queries

WordPress wouldn’t be complete without enhancements for developers as well. In WordPress 3.1, developers have access to powerful new features that provide for robust querying of both taxonomies and postmeta. In previous iterations, developers could target posts with WP_Query (or the Loop) to only those posts that have meta_key=foo or meta_value=bar.

The problem was, the potential for more granular targeting (i.e. get only posts with meta_key=foo AND meta_key=bar AND published BETWEEN Jan 1 of 2007 and Jan 31 of 2002) was not possible. Now it is. Replace meta_key and meta_value with meta_query and feed it in an array of arrays that contain any of key, value, compare (comparison operator) and type (data type). This will cause the query to automatically drill down with more granularity on the content requested.

$query = new WP_Query( array(
'meta_query' => array(
'key' => 'foo',
'value' => 123,
'compare' => '>=',
'type' => 'numeric'
'key' => 'foo2',
'value' => array( 'bar2', 'bar3' ),
'compare' => 'IN',
) );

The same can be done with taxonomy queries. Instead of meta_query, however, use tax_query and instead of key, value, compare and type you would use taxonomy, terms, field and operator. Otto has a good explanation for that on his site.

User Queries Overhauled and Simplified

Anyone who has done plugin development that has needed access to users have had a hodge podge of functions like get_userdatabylogin(), get_user_by_email(), etc. Not a lot of consistency, and definitely something that required frequent referencing of code. Now, from the “Duh! Why Didn’t I think of that?” file, comes the get_users() function that simplifies that API. It also wraps around a more powerful class for user search and querying called WP_User_Query.

To leverage this new API, you simply pass an array to get_users() and it returns an object based on the dataset retrieved. Arguments in the passed array can be:

  • blog_id – defaults to the blog id of the current blog (always 1 when WordPress is in standard mode but maybe another number in Multisite mode.
  • role – administrator, author, editor, subscriber, contributor. Defaults to nothing.
  • meta_key – allows for usermeta comparison and defaults to nothing.
  • meta_value – allows for usermeta comparison and defaults to nothing.
  • meta_compare – allows for usermeta comparison and defaults to nothing.
  • include – an array of user IDs to search. If empty, it searches all users. By default, it’s empty.
  • exclude – similar to include, this is an array of user IDs to not search. By default, it’s empty.
  • search – provides a way to target how columns are targeted. If, for instance, *max* is passed, wildcard searching is done in user_login, user_email, etc. By default, it’s empty.
  • orderby – specifies which column the results should be sorted on. By default, it is ‘login’ which designates the user_login column.
  • order – ASC or DESC. By default, queries are returned in ASC order.
  • offset – Designates a number of records to offset in the resulting dataset. If set to 1, for instance, the data will be returned with the first record skipped and begin on the second. By default, this is empty.
  • number – Designates how many records to return.
  • count_total – if set to true, the number of records returned is included in the dataset. By default, this is set to true.
  • fields – designates which fields to search. By default, this is set to ‘all’

Admin Bar

For those of you who have been WordPress.com or BuddyPress users, you’ll be familiar with the admin bar. The Admin bar is a toolbar that goes across the top of the site that allows users quick access to other parts of their blogs. That Admin Bar has now been brought to WordPress 3.1 as a user setting so it can be turned on or off based on preference
in your user profile.

In Multisite, the default is to show the admin bar in both the wp-admin as well as on the front end. In standard mode, the admin bar is set to only display on the front end by default. The Admin Bar, by default, provides quick access to a User menu providing a quick link to the user profile as well as the dashboard and the ability to logout. There is also a My Sites drop down menu available in Multisite that allows users quick access to blogs they have access to. There is also Admin Bar access to other frequently used areas of the blog and plenty of hooks and filters for plugin developers to add additional access.

Improvements to Custom Post Types

In WordPress 3.0, custom post types were introduced and now they have been iterated on. For one, in WordPress 3.0, custom post types could be declared but a standard set of UI was added to the admin menu. This set of UI was fashioned with an edit menu (called Posts for the standard Posts UI), Add New and, if custom taxonomies were assigned, Categories and Tags (or
whatever those taxonomies were designated as).

Now, developers can add a show_in_menu argument when registering a post type, and designate which menu to display limited UI in. This allows for custom post types to be used with the flexibility of eliminating potentially unwanted UI that would clutter the menu. Andrew Nacin has a great writeup on admin menu changes with post types that is worth the read for any developer working in this area.

Related, when declaring a post type, you have traditionally had to pass an array of labels that designate a singular version of a name (i.e. Post vs Posts) as well as a common name (i.e. Posts). You can now add menu_name to that list of labels if you want to target a specific way of displaying the post type in the admin menu.

Finally, theme developers can now create template files named archive-{post_type}.php to target specific post types to specific templates. Utilize a new has_archive() function to determine what should be displayed when there are actually posts that match the criteria of the query or not. This gives a good way of providing some kind of 404ish or other content if no content for the post type exists.

Filterable Template Hierarchy

Speaking of template files, it’s now possible to designate different template file orders and hierarchy depending on need. The original ticket, patches and ultimate core addition, uses the following example:

Take the author template hierarchy: author-{nicename}.php > author-{id}.php > author.php

Say I want to add author-{role}.php before author.php.

With an ‘author_template_candidates’ hook, I could manipulate the actual hierarchy.

Thus was born the ‘{$type}_template_hierarchy’ filter which can be used by developers to insert author-{login} before author.php in the hierarchy by hooking on the filter ‘author_template_hierarchy’. Pretty Neat!


While WordPress 3.1 is not the biggest release in the history of WordPress major releases, it does add quite a few new toys for bloggers, as well as developers. Remember when upgrading that you should, if you can, test your site in a development area before doing the upgrade. Plugins should most likely work, but you never know. And if something is broke, you can email me a aaron@technosailor.com and, for a fee, I may be able to help you out.

Finally, the second edition of the WordPress Bible will be out sometime this spring and it does, in fact, cover WordPress 3.1. However, the 1st edition is available now and is a great resource if you’re trying to get under the hood. You can buy that today on Amazon.

Credit: Andrew Nacin (@nacin), a Core WordPress Developer, slapped me with a trout several times during the course of writing this article. While I take credit for the article, any inaccuracies are entirely his fault. ;-) #blamenacin

guest blogging

10 Things You Need To Know About WordPress 2.8

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

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.

Aaron Brazell

10 Things You Need To Know About WordPress 2.7

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.


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.


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


for comment threading and the




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).


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



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.






all deal with the new commenting system. The


conditional tag is used with the Loop,


and sticky posts. Use for styling, perhaps.

Not yet covered is the


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


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


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


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.


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.
Aaron Brazell

10 Things You Need to Know About WordPress 2.5

WordPress is about to release version 2.5 into the wild (It just hit Release Candidate yesterday so the release date, though officially not known, is coming soon). If you’ve been using WordPress.com or have peeked at the demo site you will know the biggest change coming to WordPress with this release.

You might ask, “Where did WordPress 2.4 go?” The answer to this is that it was skipped. Yes, that’s right, the 120-day release cycle was scrapped this time and you essentially have two releases in one. Again, the changes are vast and countless. This is a huge release.

So let’s get into the nitty gritty shall we?

New Admin User Interface

WordPress 2.5 GUIBy far the most comprehensive change in this release was the complete rethinking of how WordPressers do their administrative tasks. Happy Cog Studios was enlisted to do usability research and testing – with the emphasis being on usability research. Several of the items in this rundown are going to be broken into their own list item as they deserve their own description and, again, this upgrade is huge.

You’ll notice that the WordPress admin is now bathed in a lighter blue, lighter grey and orange color scheme. I like the nice hues, but others are bound not to. If you’re a developer or know your way around creating WordPress plugins, you can supply your own admin CSS with the




filters, and WordPress is already supplying per-user options of “Classic” – the old dark blue feel – and the “Fresh” style which is installed by default.

function my_admin_css( $cssfilename )
    // Use name of the CSS file inside the wp-admin folder WITHOUT the file extension
    return 'my-new-wp-admin';
apply_filters('wp_admin_css', 'my_admin_css');

I’d just stick with the default though. It’s not too shabby.

Menu Layout

WordPress 2.5 Menu
One of the first things you’ll notice is the change in the administrative navigation. It struck me as very Movable Typeish. I don’t know if the idea came from them or simply that Happy Cog had such thorough user research that it made sense. Either way… it makes sense.

Primarily, users interact with the WordPress admin in one of four areas – writing posts, managing posts, managing comments, and managing design elements. You’ll notice that these items make up the primary navigation on the left side of the screen. (Sidebar: You’ll also notice that the Presentation menu has been renamed Design – which was a usability decision. It makes sense.) Matt wrote more about this.

The rest of the formerly Primary navigation items – Plugins, Options (now Settings) and Users have been moved to a secondary navigation on the right side of the screen.

Sub-navigation is something that’s a little weird. As both the Primary and the new secondary navigation used to be part of the same menu bar, the “submenus” all made sense to appear below the primary navigation. This is still the “right” place, I believe for the new Primary navigation points but seems awkward for the Secondary navigation items that are relegated to a different portion of the screen. I know this is something that is currently being thought about, I just don’t know what the final results will be.

Also, as a bit of additional commentary, I think plugin authors need to go back and revisit their choice of where they have put their plugin subpages. Do they really make sense to be in the Options page (now Settings)? Do they really belong in the Manage page? In my opinion, plugin settings pages should be listed as a sub-page of the Plugins menu.

Widget Handling

WordPress 2.5 Widget MAnipulation
Another MASSIVE shift in philosophy has been in the Widgets page. Before, you could drag and drop widgets into position. You can still reposition widgets by dragging within a sidebar, however, WordPress is relying less on Javascript “bling” for this release. Each widget is listed in a column on the left, you click the Add link and it jumps into the sidebar. Instead of having all sidebars displayed at one time, the user selects the sidebar from a dropdown to expose a different sidebar.

To me, this adds work to the overall experience, and so fundamentally I don’t like it, but it feels more reliable.

Dashboard Overhaul

WordPress 2.5 Dashboard Overhaul
The second thing you will probably notice immediately on login to the WordPress admin (the color scheme being the first) is the new dashboard interface. Now it is completely modularized, and though there is no “tight” way of adding your own, plugin authors can create their own dashboard widgets. The architecture is primitive at this point, but will improve offering a much easier way for plugin authors to do their thing without feeling like they are “hacking”.

A summary of your entire WordPress install is summarized in a widget titled “Right Now” informing you of the number of posts, comments, draft posts, tags and categories. Other useful widgets like incoming posts, etc are available and can be customized with your own RSS feeds.

Visual Editor Improvements

WordPRess 2.5 TinyMCE Improvements
The Visual editor, a long time bane of many users existence, has been upgraded with support for TinyMCE 3. It even includes Full Screen mode for those of you that don’t like to be distracted when writing. I cannot speak to the ability of this upgrade, as I don’t use WordPress’ visual editor, but I’m told it is a vast improvement over the older version. The TinyMCE team has worked closely with WordPress on this release as well.

Flash Uploader

WordPress 2.5 Flash Uploader
For those of you using a lot of images in your post, the image uploader has been completely overhauled as well. Namely, you can uplopad and insert multiple images at once via a new Flash-based uploader. This will gracefully fallback to the original uploader if Flash is not installed, so never fear. There is now a new “Add Media” link in the header of the post window that handles all this now. For those of you who want to debate the philosophical decision to include closed source Flash into open source, and GPL’ed WordPress, knock yourself out.

Plugin Auto-upgrade

An ambitious new feature that is being included in WordPress is a new autoupgrader. By default, it will try to upgrade plugins that are already in the WordPress plugin repository by writing the new files out to the existing plugins. however, this is an inherent security risk as it would require your plugin files be writable by the world. So the fallback is to upgrade plugins via FTP/FTP over SSL. Though your FTP username and password are stored in your database, it’s important to remember that FTP is inherently insecure. FTP/SSL is much more secure but is still not the best. Thanks to hooks in the filesystem functionality, I’ll be releasing a plugin that I’ve been working on for Secure FTP (FTP over SSH). It’s not ready yet, but hopefully will be soon and I’ll let you know when it is.

Custom Sizes for Thumbnails

WordPress 2.5 Thumbnail Sizes
Since the image uploader was added back in, something like WordPress 2.0, many, many people have complained about the inability to modify thumbnail sizes. I believe the old default was something like 100×100. In WordPress 2.5, thumb-nailing became a whole lot more useful. You can not only set your thumbnail dimensions globally, you can also have a “medium” sized thumbnail, a la Flickr and an option to crop an oversize image instead of just resizing. I figured some of you would like that.

Tag Management

WordPress 2.5 Tag Management UI
With the introduction of WordPress tags in WP 2.3, the development group took a measured approach to adding user interface around them. A minimal form field on the post write page allowed for a comma separated list of tags with no additional way of management. Fortunately, in 2.5, a bit more UI was added, though functionally identical. It works like Flickr tags where tags can be added via a list of comma separated tags or via a “type, click, add” mantra. In addition, the UI has a tabbed interface which allows for the selection of tags by checkboxes and by most used tags, useful to say the least.

Password Strength Too

WordPress 2.5 Password Strength
The last major item (and trust me there are tons of smaller items or more obscure items) in the list of things you should know about WordPress 2.5, is the password strength meter. Passwords should be at least three characters or they will be deemed “too short” and should consist of two of three types of characters – letters, numbers or symbols – or will be considered too weak. Password security is a big concern for everyone in IT and blog security itself could be beefed up significantly by users choosing “strong” passwords.

Bonus Item: Timestamp Sanity

WordPress 2.5 Timestamp ManagemtThanks to Mark Jaquith (Disclaimer: Mark is one of my employees at b5media, but is also a core developer of WordPress), the timestamp functionality of WordPress has recieved a complete overhaul. By default, a new post has no timestamp module. Instead, it’s a publish immediately, or you can click a link if you really do want to modify the timestamp. When editing a post with a timestamp, there is also no “Modify Timestamp” checkbox that caused so much confusion for so many years. If you modify the existing timestamp, it’s assumed that you actually want to change the timestamp! In other words, WP is no longer insulting the intelligence of users (not that it was an intentional insult before, but the big brother protection from the blogger’s own self was a bit tedious).

So if you feel like testing, you can grab a copy of the lastest trunk code at


. The usual disclaimers are in play when using a non-stable released version: No support offered, your mileage may vary, use at your own risk, don’t feed the tigers. But if you want to contribute to the development process, testing AND reporting bugs is a good way. A lot of testing is going on right now before a release, so have at it. :-) Enjoy.

Update: Ozh describes how to create your own wp-admin stylesheet.

Aaron Brazell

10 Things You Need to Know About WordPress 2.3

We have a tradition around these parts of publishing information for the WordPress community surrounding a new major release of WordPress. With WordPress 2.3 to be released on September 24, 2007, I think it’s appropriate to follow the tradition and let you know about the ten things I think you should know about WordPress 2.3. There’s a lot under the hood that I can’t cover in this article, so particularly if you’re a developer, you should go look at the code and figure out what new hooks and functionality you can find.


Yes, tags have arrived. They have been a long time in coming and, in my humble opinion, are not perfect – but they are good. Tagging in WordPress is ad hoc and the UI presented demonstrates that. In fact there is very little UI, just a form field below the write screen area that takes a comma separated list. The methodology does reinforce the concept that tags are not hierarchal.

Observant users may notice that there is no way to edit those tags, manage a list of tags, or delete tags. I will point out that, there are already plugins that add management tools to WordPress for tagging and the development team has purposefully taken a “wait and see” approach to tags in this release. It does not make a lot of sense to add tons of UI that is later discovered to be superfluous or rarely used. Instead, they have opted to wait and see what plugins become popular with an open mind about possible integration in future releases.

Added: I was also notified about another plugin for managing tags called ClickTags. I have no first hand experience with either of these so anyone who can provide further input, I’d love to hear it.

Let me share some of the in-built changes that tags bring to the table.

  1. Terms Table – For developers, there is a new table called wp_terms. This table is a lookup table of sorts that shares terms between categories, tags and bookmarks. In previous releases, the wp_categories table was shared between categories and bookmarks and this table was the crux of the new development approach that was taken after tags were dropped for WordPress 2.2 and rebuilt from the ground up for WordPress 2.3.
  2. New Tag and Terms API – Plugin developers will appreciate new API that inevitably comes with a new feature this large. Take a look at the new

    for lots of new API functionality. Note that the new API probably effects more than tags, but I don’t know for sure. It probably interacts with category and links/bookmarks/blogroll API as well. If your plugins interact with this API, make sure your plugins still function as expected.

  3. New Template Tags – There are not a tremendous amount of new template tags dealing with tagging, however theme designers should be aware of them and adjust themes as necessary. Bloggers, feel free to hack your themes to use these functions, however, you may want to wait and see if your theme gets an update for WordPress 2.3 before you upgrade. There may not be a lot of documentation at first, so be sure to refer to

    to see what arguments can be passed to these tags (though all should work without any arguments whatsoever):

    • 1
    • 1
    • 1
    • 1
  4. Tag Importers
    • Ultimate Tag Warrior
    • Jerome’s Keywords
    • Simple Tags
    • Bunny’s Technorati Tags
    • WordPress categories

I have been running WordPress 2.3 on this blog since pre-2.2 when 2.3 was supposed to be 2.2 and was branched to nuke the original tag concept and still hit the release milestone dates. I will tell you from first hand experience that importing WordPress categories does not associate those tags with entries that previously had the identical category. I think that will be a common question so I’d like to answer that here.

Feel free to gripe or complain or praise and adore the new tags functionality. If your voice is not heard then WP devs will be left to assuming what the community wants. As this is a community resource, I do invite you to express your opinions on the tagging feature here. Please keep it respectful though as the people doing this stuff by and large are volunteers devoting their time and energy to make WordPress better for everyone. If you behave respectfully, chances are your voice will be heard and not ignored.

Update Notifications

Update notifications have been a long requested feature of WordPress and thankfully in this release, it’s been delivered – not once, but twice. Now WordPress can alert you when a new version of WordPress is available as well as new plugin versions. I find the plugin update, particularly, very HAWT.

Canonical Redirection

This has long been a bane of every webmasters existence. Canonical URLs are treated differently by Google and the search engines meaning the www. version of a site is considered to be a different page than the non-www version. Search engines see two different pages and penalize one as duplicate content.

To fix this, many webmasters and bloggers, including myself, have taken steps to redirect one version to another. In my case, I redirect www versions of my URLs to non-www versions. Now, WordPress handles this internally based on the value you set as your website site URL under the Options > General page. In essence, this means instant SEO benefits to WordPress 2.3 users.

Post Workflow Improvements

Two more often requested features is better draft management functionality as well as a better editorial workflow for non-Editor, non-Administrator writers. While the second is amazingly better, the first is a step in the right direction but still not “great”.

Draft Management is improved by adding a series of dropdown menus on top of the blog’s Manage page. From this list, you can quickly select posts that are in draft status. This does not do away with links to draft posts that has traditionally been located at the top, but this too has received some TLC. If you’re a blogger that keeps lots of posts in draft for a rainy day, or simply start posts and save them to draft to work on later, you’ll be familiar with “Draft Hell” where multiple levels of links can crowd the top of the page and become unwieldly. Some smart massaging happens to this list now and displays two drafts and adds an “and more…” link to the end leading the blogger to a page listing draft posts. Aesthetically this is great, however I still think the management of drafts can be a bit unwieldly and ugly.

The second bit that pertains to workflow management has to do with “pending review” posts. These are great for multi-author blogs where “Author” level bloggers do not have the rights to publish an entry without a review. Unfortunately, in previous iterations of WordPress, an Administrator or Editor had to pay close attention to when blogs were ready for review but now, they are notified. This is an excellent editorial workflow item that is long overdue.

Pluggable Dashboard

If you’re pretty tired of getting all the stock WordPress and Technorati links on your WordPress dashboard and want to make it more useful for you, the dev team has made the WordPress dashboard customizable via several new plugin hooks.

We’ve been using this at b5media already to provide bloggers with feeds that are more relevant to them as well as replacing Technorati results with Google Blog Search results under Incoming Links. So far, no complaints!


A feature that will only make hardcore developers giddy, there is a not-yet-used-yet-still-functionally-solid method added to the database class. the


method is a handy little method that can be used to nuke SQL injection hacks before they become an issue by creating safe SQL code. Like I said, it’s not in use yet in WordPress because the devs ran out of time prior to release of WordPress 2.3. The feature is officially slated for WordPress 2.4 but I thought I’d point it out as the code is in place (and subject to possible modification in advance of its official support in WordPres 2.4.


Atomlib is a relatively late addition to the WordPress 2.3 codebase. It was created by none other than the great Sam Ruby who was influential in creating the Atom feed specification and the Atom Publishing Protocol. Atomlib provides a support library to the Atom products supported by WordPress – the Atom Publishing Protocol and the Atom 1.0 feed. As it is a self contained library, the potential for its application in other ways is there if a developer wanted to sling some code to create new functionality or plugins.

Deprecated Functions

Not a significant issue as I have not seen the two functions that have been deprecated in widespread use in the community. Yet, as a new release comes along and deprecates some functionality, I feel it necessary to point them out. In the case of WordPress 2.3, only two functions have been deprecated – and they both relate to permalinks. The first one, template tag


has been deprecated in favor of


. I believe most usage examples as well as most theme designers already use


so I doubt this will have much effect. Additionally,


has been deprecated in favor of



As usual with deprecation, the functions still work and are available. However, it is advised that the new format be used as deprecated functions will eventually be removed from the core.

Multiple Category Widgets

With the advent of tags and terms, the possibility has been introduced to have different “groups” of categories organized in different ways. To that end, the Categories widget has been expanded to allow multiple category widgets. Though these widgets are not overly useful, someone may be able to find some uses for multiple category widgets.

Pluggable RSS Library

A common complaint in the WordPress development community has surrounded the inclusion and forced use of Magpie as an RSS parsing library. We at b5media, for instance, find a much better and supported library (Magpie stopped being developed awhile ago) in SimplePie. There may be other RSS parsing libraries available. The point is, WordPress is all about being extensible and offering the user choice.

To that end, there is a new plugin hook called


which allows plugin authors to load a different feed parsing engine if they so choose. I find this very interesting and useful. Others will not, but again, it’s about choice.

WordPress 2.3 brings us a lot of good things. It’s certainly not perfect. I’d personally recommend that everyone wait before rushing right out and upgrading. There may be breakage so make sure you back stuff up. With a new version, it’s usually wise to wait a few weeks and let plgin authors catch up and update their plugins. Of course, the fewer plugins you use, the better off you’ll be – but that’s a matter of choice. Overall, this is a very solid release in my opinion.

Also, I’d love it if you Dugg this article if you find it useful.

Aaron Brazell

10 Things You Should Know About WordPress 2.2

Ah, the time has come again. So soon at that. Imminently, a new WordPress release comes to our doorsteps (It’s being given a final once over by testers – Update: It’s here). Since WordPress has gone into a 120-day release cycle (plus a few weeks in this case), the feature list is shorter but more power packed. Still, though, there are (at least) ten things you should know about WordPress 2.2 – and you may want to figure out if this release is right for you.

Native Widgets

Since Automattic released their Widgets plugin, the public has widely adopted them. Personally, I was a late adopter but yet I drank the kool-aid and can’t live without them. In fact, all our new themes at b5media are widgetized. They are low maintenance, though still a pain in the royal rear for theme designers who don’t understand how to take WordPress themes to that next level, but that’s certainly not the fault of WordPress. I digress. Widgets are now fully integrated into the core. It was this feature that has been worked on almost exclusively outside of bug fixes for the final weeks before release. Hope you enjoy them!

Added: Please make note of the fact that native widgeting is not yet compatible with IE as reported in this ticket that went unpatched before release. If you use widgets, you will be unable to remove widgets beyond a certain hierarchy of the “available widgets” queue. Be warned or use Firefox or an alternative.

Also Added: Folks using multiple ExecPHP widgets may run into difficulty with only the first widget contents being echoed on the blog. It is a bug, will require an upgrade to the widget, but there is good news. Ryan Boren comes up with the workaround.

Atom 1.0 Feeds

Another war that has been fought for quite some time is WordPress support for the Atom 1.0 feed. Up until now, there has only beenm native Atom 0.3 support and RSS 2.0 was the preferred feed. Now, advocates of Atom can be happy with the standard XML that is produced by Atom 1.0 making it more portable in other environments.

WP-Admin powered by jQuery

I admit to not knowing much about the various Ajax javascript libraries, but I’m assured that the introduction of reliance on jQuery in wp-admin makes for a faster and lighter administrative panel. The previously favored Prototype library, while heavily favored for its multipurpose abilities, will continue to be bundled with WordPress for the sake of plugins that rely on its existence, but will cease to power the bulk of the administrative functions of WordPress.

Update: Ilfiloso clarifies in comments and on his very cool post that delves deeper into things developers will like about WP 2.2, that jQuery is still not implemented across the board. We can expect more transitions in future releases.

Atom API Support

Bloggers using API editors (external desktop editors, for instance) may be interested to know that WordPress has introduced Atom API support. To this time, bloggers were forced to use the MovableType or the MetaWeblog API to write posts with an API editor. Benefits of Atom API is, among other things, security. Passwords are not transmitted in clear text as with other APIs. Mark Pilgrim has an older, yet still relevant, article about the technical benefits of the Atom API. Feel free to give it a read.

New Blogger Importer

And the world breathed a collective ‘w00t!’. Blogger is still by far one of the most popular platforms for blogging in the world. Beats me why, but I can’t argue with the numbers. Naturally, I (as many others) encourage people to migrate from Blogger to WordPress. The old WordPress importer for Blogger sucked horrible. It basically did a page scrape in multiple cycles that could bomb at any point. The more posts in Blogger, the higher the chances of an interrupted import. And it would take all day.

Then Google decided to do the whole “new Blogger” thing and tied blogs to Google accounts instead of the old-style Blogger accounts. This was fine for everyone except people trying to migrate their blogs away. The old Blogger import (bundled with even WordPress 2.1 despite the fact it didn’t work anymore) simply no longer functioned properly. Fortunately, a new Blogger importer (much smoother) was developed and has been in action on WordPress.com for some time, but those in the WordPress.org world were up a creek. The only solution was to import to a temporary WordPress.com blog, then export a WordPRess export file that could be imported into your own blog.

Now however, Blogger bloggers can move directly, and more seamlessly, straight to WordPress. Good times.

Plugin Sandbox

Ever had one of those times where you install a plugin that you didn’t know had code errors. You activate and go and view your site just to find it completely blank. You go back to your plugin page and it too is blank. The only remedy was to FTP into the site (or SSH if you choose, Mr. Ninja!) and delete the plugin.

Now that is no longer an issue. Plugins are sandboxed upon activation. By that, I mean, the code in the plugin is evaluated on activation for code with fatal errors – the kind that make your site blank – and if the code doesn’t pass the test, it is simply not activated. This prevents an errant plugin from taking down your whole site.

New Hooks for Plugin Authors

Plugin authors, rejoice! More hooks than ever are available to you in WordPress 2.2. You can now change the comment form using the


hook. You can even hook on




for some potentialy dangerous and/or creative plugins. ;-)

Return of the Preview Link

Many people noticed that in WordPress 2.1, the Preview link that was available on the Write screen disappeared. WordPress developers have heard the groanings of the masses and returned it, albeit in a different form. Now the link actually opens the site in a new window (no more slow loading iframe below the edit area). this should make many people very happy. :-)

Comment Feeds

There has always been a way to subscribe to the comments of a post. Just like everywhere in WordPress, adding /feed or, if you don’t use friendly permalinks, &feed=rss2 to the end of a single post will bring up the feed for the comments. It’s a great way to monitor conversation on a post you’ve commented on.

In WordPress 2.2, you can get comment feeds wherever you go – archives, categories, etc. So if you like James Joyner’s sports stuff but not so much his political or celebrity blogging, you can subscribe to just the commenting surrounding sports topics. This feed should be autodiscoverable by RSS feeds, but if not, theme authors will have to expose that to the world while designing their themes.

Mail Enhancements

Another thing you may or may not want to know know about WordPress 2.2 is an under the hood enhancement but solves historical quirkiness with emails generated by WordPress. As rudimentary as email is, it is still finnicky at a system level. If headers are not correct, ISPs may reject it. Spam filters like eating email for no good reason, and sometimes don’t eat the email it should. WordPress has integrated PHPMailer as the email class of choice to solve some of these issues. Again, under the hood, but hopefully addresses some problems encountered by some users on some platforms with some server configurations.

Under the Hood Optimization

Other under-the-hood enhancements that in some cases may not visible to the naked eye include better HTTP protocol support, enhanced PHP 5 support, and the TinyMCE upgraded version (it’s the Visual Text Editor, silly!). Here’s a complete set of changesets between version 2.1 and 2.2, for those curious among you.

As WordPress development is on a 120-day release schedule now, fewer BIG features will be implemented as less time is available. Releases will tend to be quicker. Development on WordPress 2.3 will begin immediately and if you have a desire for a feature not yet available in WordPress, you should make your voice heard through the feature wish list.