The joys of running a WordPress blog

Earlier today, John Duncan (of moonshine fame) emailed he was unable to post a comment to the previous post:
“I went to post a comment but somehow couldn’t convince the website to cooperate.”

There’s little point in maintaining a self-hosted blog if people cannot comment on it. If you tried, you got this scary message:

Catchable fatal error: Object of class WP_Error could not be converted to string in /wp-includes/formatting.php on line 1031

The days I meddled with wordpress core php-files are long gone, and a quick Google search didn’t come up with anything helpful.

In despair, there’s always the database to consider.

Here’s a screenshot of this blog’s database in phpMyAdmin:

No surprise you cannot comment here, there isn’t even a wp_comments table in the database! (though surprisingly, there’s a table wp_commentmeta…)

Two weeks ago I moved this blog to a new iMac. Perhaps the database got corrupted in the process, or the quick export option of phpMyAdmin doesn’t include comments (unlikely), or whatever.

Here’s what I did to get things working again. It may solve your problem if you don’t have a backup of another wordpress-blog with a functional wp_comments table.

1. Set up a new WordPress blog in the usual way, including a new database, let’s call it ‘newblog’.

2. In phpMyAdmin drop all tables in newblog except for wp_comments.

3. Export your blog’s database, say ‘oldblog’, via the ‘quick export’ option in phpMyAdmin to get a file oldblog.sql.

4. If this file is small you can use phpMyAdmin to import it into newblog. If not you need to do it with this terminal-command

mysql -h localhost -u root – p newblog < oldblog.sql

and have the patience for this to finish.

5. Change in your wp-config file the oldblog database to newblog.

Happy commenting!