Web
My First WordPress 2.3 Update Notification and Subversion Upgrade
0It was exciting to read about the new feature of WordPress 2.3 where it gives notifications as soon as the updated versions of WordPress core and the plugins are released. When I logged into my WordPress 2.3 administration dashboard today, I got my first notification of an updated core version released! (Not news to me though, as the wp-testers list keeps me updated.)
At the top:

In the footer:

WordPress 2.3.1 was released a few hours ago and some of the bugs that it fixes are:
- ‘Blogroll -> Import Links’ bug – #5107.
- Faster tag intersection search queries – #5137. Ryan Boren has written a good article on tag intersections.
- Manifest file for WLW to enable tag support in it – #5023.
- Incorrect behaviour when posting via email that contains hyphen(s) – #5169
Fixes the security issue related to “an XSS problem that can be exploited if your php setup has register_globals enabled.”
A quick upgrade guide is available on the WordPress Codex. Detailed instructions are also available, in case you have never upgraded WordPress before.
If you, like me, had installed WordPress 2.3 by directly checking out from the Subversion repository, you can upgrade by simply running this from the console:
sh# svn sw http://svn.automattic.com/wordpress/tags/2.3.1/
Substitute the path to your WordPress installation path in place of <your-blog-directory>. Then run http://<your-blog-address>/wp-admin/upgrade.php as usual.
More information on Subversion upgrade.
I have a Few Pownce Invites to Give Away
7If anyone is still finding it difficult to find a Pownce invite, I have a few(~25) invites left in my account that I can give away. Send me the email id where I should send the Pownce invite or leave it here in the comments. I will update the post if and when I run out of the invites.
Other ways to find a Pownce invite:
Google Search
InviteShare
Ebay :D
How I Upgraded to WordPress 2.3 on Live Blog With Zero Downtime
3Few days back I had noted on this blog that the WordPress 2.3 upgrade of my blog went trouble-free and the blog was inaccessible only for less than a minute during the upgrade. I had quickly noted down the steps that I had followed to do the upgrade and I am trying to give a shape to those rough notes in the hope that it may come handy to me in the future. Whether or not this will be useful to the others depends on whether they share the same environment as that of my blog. Most important factor to me was my web host Dreamhost‘s support for remote shell access which is very helpful in carrying out many of the following tasks conveniently. I find FTP, scp etc. to be slow and inefficient. I was also lucky that my theme and plugins didn’t me give any problems.
So let’s get started.
The general idea here is to create a complete replica of the current blog at a different location but using the WordPress 2.3 version. Such a copy can be made on a local system too(if LAMP stack is installed, say XAMPP) but because Dreamhost makes it so easy to work with the remote shell, I decided to make the copy on the Dreamhost server directly.
- Let us first get everything ready that is needed to make a copy of the existing blog. We need to create a new directory to install WordPress 2.3 in it and also need to create a new database to import the old posts into it. (If you can’t/don’t want to create a new database, you can use the same existing database and use a new table prefix(e.g. wp2_) instead, but there is always a tiny-weeny bit of risk involved with this.)
From the control panel of your web host, create a new sub-domain and name it something like blog2.domain.com(you can create just a new directory too like domain.com/blog2); on Dreamhost this creates a new directory with the name blog2.domain.com and I use this directory name in the rest of the post.
Create a new MySQL database and let’s say you name it wp23_db. You can do this (1) using mysql command in a remote shell(ssh), (2) using phpMyAdmin web interface, or (3) from the control panel(like cPanel); use whatever method is provided by your web host. Note down the host name, user name and password details for the created database for future reference. On most web hosts the MySQL host name will be localhost, but on Dreamhost it will be mysql.domain.com.
- Download WordPress 2.3 and extract it in the newly created directory, probably using FTP, like you might have always done. Or preferably, use subversion to install WordPress 2.3 this time. If you use Dreamhost, you can connect using ssh/putty and run the following commands:
sh# cd $HOME/blog2.domain.com
sh# svn co http://svn.automattic.com/wordpress/tags/2.3 . - Copy the content files(theme files, uploaded files etc.) from your current blog directory to the new directory:
sh# cp -rpf ../oldblog/wp-content/* wp-content
sh# svn upAlso include any other directories you might have created to store non-Wordpress files like images.
- Now import all the data from the old database to the newly created one. You may prefer to export/import from the phpMyAdmin interface, which makes it a very easy task but painfully slow, so I use the command line instead:
sh# mysqldump ––add-drop-table -u
-p -h mysql.domain.com > exported.sql
sh# mysql -u-p -h mysql.domain.com wp23_db < exported.sql Remember to use *your* username, password, MySQL host name and database name in the commands.
You might consider disabling all the plugins in your current blog *before* exporting the database and then re-enable them as soon as the export job is finished. Actually it is strongly recommended that you disable the plugins before exporting the database as it may be necessary in your case depending on what plugins are installed on your blog. For the record, I didn’t have to disable the plugins(I was using the 3.0 beta version of Google Sitemap and latest versions of all other plugins).
- The database is ready now with all your posts in it. Next enter the database details of this *new* database(wp23-db) in the wp-config.php of the new 2.3 installation:
sh# cd $HOME/blog2.domain.com
sh# cp wp-config-sample.php wp-config.php
sh# emacs -nw wp-config.php[php]
define(‘DB_NAME’, ‘wp23-db’); // The name of the database
define(‘DB_USER’, ‘username’); // Your MySQL username
define(‘DB_PASSWORD’, ‘password’); // …and password
define(‘DB_HOST’, ‘localhost’); //mysql.domain.com in case of Dreamhost
[/php] - Before we can access the administration area of the new blog we need to edit a field in the database. Change the value in wp_options -> siteuri and wp_options -> home fields in wp23-db database i.e. replace the old blog URL with the new URL(i.e. change http://oldblog.domain.com/ to http://blog2.domain.com/ – either use phpMyAdmin or the mysql command to do this). (This is a cumbersome step and I think the URLs should be stored in a configuration file instead of in the database.)
- We are ready to run the upgrade script now, go to http://blog2.domain.com/wp-admin/upgrade.php to do so. You can now access the new, shiny WordPress 2.3 powered blog at http://blog2.domain.com/ :)
If you can’t access your blog at the new URL, try:
- Copying your old .htaccess file to the new directory:
sh# mv $HOME/oldblog.domain.com/.htaccess $HOME/blog2.domain.com
- Going to the Options -> Permalinks page in the WordPress administration area of the new blog and clicking the Update button.
In case parts of the blog look broken or you see database errors referring to tables such as post2cat, some of the plugins may be at fault, see the next step.
- Copying your old .htaccess file to the new directory:
- If you had disabled the plugins in your old blog before exporting the database(Step 4), then obviously the new blog will start with all of them disabled as well. Try enabling them one by one and see if any of them cause any trouble, in which case, consider upgrading the problematic plugins to their latest versions, or simply disabling them until you find a solution to it. You can read more about which plugins are compatible with WordPress 2.3.
If your theme looks broken, then you can try to fix the incompatible code yourself or try to use a new, 2.3 compatible theme. The chances of a theme breaking disastrously is extremely rare if you ask me. Rich’s article has a workaround.
- If you are happy with the working of the copy of your blog at http://blog2.domain.com/, it is time to make the final switch from the old blog to the new one. (Note that the old blog was serving your readers faithfully all this time without being affected by all the upgrading stuff we have been doing in the background). This is a critical step and you should confirm multiple times that your WordPress installation and the database backups are in sound size and shape before proceeding further. Do this as part of the final step:
- Change the URLs to point to your original blog location:
Go to http://blog2.domain.com/wp-admin, change the values in Options -> Blog Address and Options -> Website Address to http://oldblog.domain.com/. You can change the URLs directly in the database too, like we did in Step 6. -
sh# mv oldblog.domain.com tempblog.domain.com && mv blog2.domain.com oldblog.domain.com
Your web host may instead support mapping of domain names to directories in a different way. Use whichever way is available to you to map the old blog URL to the new installation directory. If you think something has gone wrong, then you have to reverse only this particular step.
You can now access the upgraded version at http://oldblog.domain.com/
(Delete the old database, old installation directory and the new sub-domain if you like.) - Change the URLs to point to your original blog location:
That’s it. Did I goof-up somewhere? I hope you at least got the gist of the method of upgrading described above. While enjoying the new features of the 2.3 version, try to make some time to read useful posts about WordPress 2.3 on the web. Mine was a success story, you may want to read about a different, not-so-positive WordPress 2.3 upgrading experience too. I could add a few more miscellaneous points such as how FTP too can be used instead of a shell to achieve the same end result but I think we would agree that the post is already quite long :)
Upgrading to WordPress 2.3 with Zero Downtime!
1I had decided to upgrade my wordpress blog to the 2.3 version once it gets released but I was planning to create a duplicate of this blog and work on it for couple of weeks before overwriting this original blog with the upgraded copy. I had never imagined that the whole upgradation process will go so smoothly without any database schema, plugin or theme issues and with literally zero downtime.
My blog is running on WordPress 2.3 version now! But you can’t see any difference? That’s the whole point! :)
I did not disable a single plugin during the upgradation process though I still need to test if all of them are working properly or not. They do not currently produce any observable bugs at the least. Throw me an email if you find a part of the site broken.
To be completely honest, the site did go down for around 40 seconds towards the end but that was because I goofed up a little bit. A simple rename set everything right. I am now planning to disable/uninstall some of the plugins, make a list of additional plugins to install and also search for a more 2.3 friendly theme. I am happy with categories for now, so I am keeping them; tags will have to wait.
If I can find time, I will try to document the process that I followed to upgrade this blog which I did in less than 30 minutes. I followed the subversion procedure to upgrade the blog. More details soon…
Update: Done, I have documented the entire procedure.
What is New in WordPress 2.3 (Beta 1/2)?
0[UPDATE 2: Mark Gosh has posted a nice summary of popular blog posts talking about what's new in WordPress 2.3. Must Read.
TWP website has a new podcast that previews WordPress 2.3 at the end of it.]
[UPDATE 1: WordPress 2.3 Beta 2 was released a couple of days ago. Importers are added for Jerome’s Keywords and Simple Tagging Plugins(importer for UTW was already there; read the post). Ryan Boren talks about how the plugin developers can use the new actions added to WordPress 2.3 related to status changes of the posts(Draft -> Pending, Pending -> Published etc).]
The first beta of a new version of WordPress blogging engine, 2.3, was released a few hours ago. WordPress aficionados might already know the new major and minor features that were being planned(and some of them later shelved ;) ) for this release through mailing lists and other sources but for the others, below is a summary of a few changes that can be found in the new WordPress 2.3 interface. Go through them and if you later decide to dig deeper into these new features, you only have to download WordPress 2.3 Beta 1 Beta 2(~1MB) and give it a try in XAMPP!
What’s new in WordPress 2.3 Beta 1?
- The most important improvement in WordPress 2.3 version is the built-in support for tagging of blog posts with relevant keywords in technorati style. There is no need to install a separate plugin like Ultimate Tag Warrior now. The text box shown below allows as many tags to be associated with a given post as is needed.

The tables used to manage the categories are now replaced by new tables to manage the tags i.e. wp_categories, wp_post2cat and wp_link2cat are replaced by the tables wp_terms, wp_term_taxonomy, wp_term_relationships. Lot of information on tag support is available on the Internet(especially email archives), so treat Google as your friend. More on database schema changes
- A new state in which the draft posts can now be saved under is “Pending Review.” It is useful when not all the authors are supposed to be allowed to publish their posts to the weblog before first being reviewed by an editor or an administrator.

Which means that drafts can be of two types now: posts still under editing(Draft) and posts that are ready to be published(Pending Review); there was no good way to differentiate like this earlier. An efficient way to immediately inform the contributor that the Pending Review post has been pushed back to Draft state by the editor, perhaps with a custom message attached explaining the reason for it, is however absent. EMail/IM etc are the alternate options for now; someone can write a plugin in the future that fills this need. (More info)
Also, Manage -> Posts now contains a drop-down box from which one can filter posts belonging to different states: Draft, Pending Review, Published and Private. So it can be used as a convenient place to access all the draft posts together. Similar filtering can be done based on Categories too. To search posts based on tags or other keywords, the same old search box can be used.
- A new button on the WYSIWYG editor toolbar can be used to show (and hide) a second (new) toolbar which has got additional editing buttons. These buttons allow operations such as underlining of text, font colour selection, inserting <H> tags, undo-ing, pasting directly from MS Word document etc.

I always use the plain text editor so it doesn’t matter to me how many additional buttons are added to the WYSIWYG editor! Doesn’t matter to those too who use their own favourite WYSIWYG editor in WordPress.
- For those blogs that use the popular plugin Ultimate Tag Warrior to manage the tags, WordPress 2.3 Beta 1 has an importing tool to import those tags to its own native tag format(importing Simple Tagging Plugin tags and Jerome’s Keywords likely in the 2.3 final version it’s there in Beta 2). POC(Plain Old Categories) can also be converted to tags using the provided converter tool. These two options can also be accessed from the Manage -> Import page.

- One of the first things I ever do after installing WordPress is hide all the links from the default blogroll. The links now point to various resources related to WordPress project instead of blogs of important WordPress developers, but I still think I will have to hide them when upgrading to 2.3 version. Or make it visible only to the blog administrator.

- There are many other differences too, like file sizes in Manage -> Uploads section, Categories Widgets, Plugin (and core) Update Notifier etc.
Download it and try it out by yourself. Or check-out the source directly from the subversion repository to keep updated with the latest changes. WordPress Planet website should keep us posted on the latest information on WordPress 2.3′s journey towards the final release(more detailed than WordPress development blog anyway).
Recent Comments