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.