What’s Not Gonna Work in WordPress 2.0

The most often asked question regarding WordPress 2.0 is, “When is it coming out?” Well, that’s going to be this week.

The second most often asked question regarding WordPress 2.0 is, “What is changed?” I think I wrote about that before.

The third most often asked question regarding WordPress 2.0 is, “Will my plugins and/or themes work?” Uh…. Possibly?

This is also known as the dreaded question, “In what way is WordPress 2.0 going to break my site and cause me hours of upgrade pain without someone to whom I can whimper, ‘Please, make it go again.’?”

This post isn’t going to make that question much easier, but I may provide a toll-free support number for handling these issues before the week is out.

There is a user-supplied list of plugins that will/will not work with WordPress 2.0 over on photomatt’s Codex user page. I hope that this page gets rolled into the main site soon because it’s a little off the beaten path.

Here’s the good news: Themes are probably OK. Unless your theme was doing something crazy before, it’s probably going to work after the upgrade. There have been a lot of new plugin hooks added to the 2.0 version, but it doesn’t seem like anything made it into the theme system that would cause it to break.

The theme system does allow for a custom plugin-like set of functions to be loaded. WordPress will automatically load a file named functions.php for any theme that includes one. This is done in the same way that plugins are loaded, and allows themes to supply their own custom features, including both output functions and configuration pages.

Also, themes should now come with “thumbnail” images (I say “thumbnail” in quotes because they’re actually more the size of your palm, but…) that will be displayed in the admin. If your theme doesn’t have one, it’ll simply show a blank box.

A theme that doesn’t have either one of these should load just as it did in WordPress 1.5.2, but won’t have those additional features.

Plugins are another question, though. There are some specific sections of WordPress that have been heavily revised. If you use a plugin that integrates into one of these sections, it will probably not work. Specifically, the permissions and capability sections will be a bear for plugins that are affected by user levels.

If you are running a “view level” plugin - something that restricts a reader’s permissions to access certain posts - I’ll say straight out right now that unless you’ve got a brand new version (and I know of no author who has written one of these plugins that is offering an updated version) it’s not going to work. If you have an update, comment here - I’m looking for it myself.

One often overlooked aspect of this is that any plugin that uses an admin page will need review. The function call that adds custom admin pages used to require a user level number. It now requires a capability name. Now there are some backwards-compatibility checks for user levels in there, but they may obviously not work as well as something specifically designed to work with the new capabilities system.

Also in the administration area, if you are using a plugin that hooks into the editor, you may have issues with it. This is particularly so if that plugin adds buttons to the Quicktag toolbar, since the new default is to use the WYSIWYG editor, which does not use the same toolbar.

I have written the buttonsnap class, which lets plugin authors add buttons to both editors very easily. It’s not a plugin itself, but a library that makes it very simple for plugin authors to create buttons in either editor with a simple, single function call. Still, the plugin will have to be rewritten to use my library or some other solution if it’s going to be effectual.

If your plugins use DOM to insert new elements into the user interface (pretty much any plugin that adds elements is using DOM to do it) then it may need to be updated to account for changes there.

The Upload page in the admin is gone. If your plugin altered or attached to that page, it won’t be any more.

Generally speaking, you’re going to need to procure write access for your server to the /wp-content directory of WordPress. That means you have to allow your server to write files into that directory from scripts. This will allow things like caching, image uploading, and the bundled backup plugin to work as they should, although your host may not like it or allow it (most hosts will, but you should check), and you might not consider it secure to leave all of the subdirectories there in that state.

You should verify with someone you trust concerning the permissions you intend to use to provide the access to your server that you want to provide.

What should you do if your plugin doesn’t work?

Panic.

Nah, just kidding. Actually, before you upgrade, compare the list of working plugins against the ones you’re using. If your doesn’t appear in the “known working” section of list, you need to talk to someone.

Your best bet, if you can find contact info, is to badger the plugin author. Barring that, you can try any of the standard support channels, but be aware that in the fallout that is bound to occur when everyone upgrades, your 3rd-party code (code written by someone outside of the WordPress core) isn’t going to be a priority.

I suggest trying WordPress IRC (#wordpress @ irc.freenode.net) and see if anyone there knows how to solve your problem. There is usually someone there that can at least record the issue or forward it on to someone who can start fixing.

I haven’t been keeping up with documentation on 2.0 as well as I should, but I imagine that with the frequency of changes over the past month or two that nothing is verifiably up to date. If you find instructions in the Codex for performing some necessary intrinsic system change, first be sure that the instructions apply to the version you are installing.

Probably the most sound advice I can give you is this: If you have any doubt about performing an upgrade - don’t upgrade! There’s no reason to submit yourself as a guinea pig to test this software, especially if you’re fairly satisfied with what you have already. Granted, WordPress 2.0 is a nice piece of work, but it’s going to be a while before 1.5.2 loses the support of the community at large.

Take your time. Learn from the mistakes of the 500,000 other downloaders. After that, take the plunge.

Remember to backup everything.

Shameless plug: There are also people who can do your upgrade for you.

If any of you developers think of any other “gotchas” in the new system, please leave them in the comments. Thanks!

Otherwise, I’ll see you in WP 2.0 later this week. I’ve got at least two plugins for 2.0 that I hope to have baked for the release. I’m also looking forward to the sleek new WordPress.org site redesign/rebranding we were promised with the new version release.

Comments are closed.