WordPress comments in unlikely places

I’ve just been puzzling over a comment that appeared on my katsura blog. An email had indicated that a comment was waiting my approval. I read it, and approved it. Interesting, I thought. I shall reply to it. So, er, where the hell was it?

I searched and searched and couldn’t find. it. Perhaps it hadn’t appeared? Perhaps it was something to do with the usually wonderful akismet plugin? I dropped into the University of Google and started searching for articles about non-appearing wordpress comments. No shortage of them. But, none of them seemed right. Many talked about re-installing themes, and a frustrating number terminated inscrutably with “Topic Closed” with no tell-tale [SOLVED] in the title.

So I looked again at the comment. Where exactly was it? Hmmmm, indeed, what exactly was it commenting on? Now that I looked at it more closely, it wasn’t commenting on a post at all, it was commenting on a photo! What the hell was going on?

Eventually I found it. It was a comment to a photo, and the photo had its own attachment page (whatever that is). This is the photo, and it seems that my commenter had found themselves there directly, rather than on the corresponding post. My guess is that, because I use meaningful tags and filenames on my images, my visitor had googled for katsura pests, or something similar, and the photo had appeared at the top of the listing.

Right, I’d discovered what had probably happened, and the fact that it was possible to comment on attached photos, now I had to figure out what to do about it. I could leave the comment there, but it didn’t show up anywhere on the blog page. Not under Recent Comments anyway. So the best thing to do would be to move it. There’s bound to be a way to do that easily in WordPress.

Well, no there’s not. Not easily anyway. Not to worry, there’s bound to be a plug in. Or two. I tried two plugins, and neither of them moved the stubborn post. I could cut and paste it myself I suppose, but I didn’t want to do that.

Eventually I found some SQL in an article that’s around in a few places. I had a look at the SQL and started up phpmyAdmin which was altogether friendlier. The SQL looked daunting at first but it was basically just tweaking a couple of numbers and it all made sense. It’s quite good doing it in phpMyAdmin and watch the SQL it constructs to get the feedback that things are going ok. I nearly got caught out by forgetting to update the comment counts, and when you get to that bit, I found the Total Comment Count for the old post bit was irrelevant, as there was no ‘old post’ for it to have commented on.

Things looked better. Neat and Tidy. And I thought I’d round things off by installing a WordPress plugin that promised not to allow such things to happen again. But I got cold feet. WordPress warned me that it hadn’t been tested on my version (3.2.1), and that it was only compatible up to version 3.0.5. I know how to fix it now, and if it remains infrequent, then I’ll do it the SQL way.

Upgrading wordpress

Well that was a brief moment of unease. Still new to the whole wordpress world I logged on to see a message advising me to upgrade to 3.1.3 and reminding me to backup before proceeding. Yeah, whatever. I’d only just started so hadn’t that much to backup. Plus I was a bit lazy.

I could download 3.1.3 myself or get wordpress to DIY. I chose the latter and all looked well until I tried to login again and:

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

That brought me down to earth with a bump and I consulted the University of Google on the message. Lots of references to .htaccess files and problems with add-ons, all of which sounded like hard work. Looking for an easy fix I had a look at my error logs and found lots of Premature end of Script errors and references to various .php files. I had a déjà vu moment and remembered the original tips I’d read on this blog when I was originally struggling with installing wordpress in the first place. Sure enough, same old same old.


find . -name "*.php" -exec chmod 755 '{}' ;
chmod 600 wp-config.php

does the trick.