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.

Tags

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
    1
    wp-includes/taxonomy.php

    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
    1
    wp-includes/category-template.php

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

    • 1
      wp_tag_cloud()
    • 1
      get_tag_link()
    • 1
      get_the_tags()
    • 1
      get_the_tags_list()
  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!

$wpdb->prepare()

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

1
prepare()

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

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

1
permalink_link()

has been deprecated in favor of

1
the_permalink()

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

1
the_permalink()

so I doubt this will have much effect. Additionally,

1
permalink_single_rss()

has been deprecated in favor of

1
the_permalink_rss()

.

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

1
load_feed_engine

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.

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

1
comment_form

hook. You can even hook on

1
option_home

and

1
option_siteurl

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.

WordPress 2.1 Gotchas

I figured I’d follow up my 10 Things You Should Know About WordPress 2.1 with another useful post. The reality is that there were bound to be discoveries by the masses after the launch and over the past few days, this assumption has been borne out. The really tech savvy among us and those who participate (or at least religiously observe) in WordPress development, particularly via the email lists, have a tendency to “forget” what it’s like to not know the ins and outs of WordPress.

So having watched the uptake of WP 2.1 the past few days and learned a thing or two that I did not know along the way, I thought it would be useful to post some of the things that have cropped up in the mass migrations from WordPress 2.0.x to WordPress 2.1.

After my upgrade, my blogroll is all screwy.

I mentioned in my 10 Things article that there were semantic reasons for the combination (at least on the back end) of categories and what was formerly knows as “Links”. You’ll notice that Links is now called Bookmarks and is actually a category to itself among the Category listing. [Read more...]