I fixed two issues that have been problems on this site since I launched the new site back in November:
- Receiving pingbacks didn’t work.
- Per post comment feeds were broken.
The first issue was a little tricky. I had a pretty good guess what the problem was, but didn’t know where to look to fix it. I mentioned this while chatting with Matt on Monday night and he knew right away what needed to be done.
Basically, I use the hooks in the permalinks to create custom URLs on this site to simulate having 2 separate blogs (the main blog and the golf blog). I then use the hooks in the query parsing to route the custom URLs to the proper places. The piece I was missing was also accounting for my custom URLs in the
url_to_postid function. There wasn’t a hook in there, so I’ve submitted a patch to add one. I believe this will be accepted for 2.2.
Once I was receiving pingbacks properly again, I hacked up a little script to re-send pingbacks to my own site from posts that I’d added since the re-design. Basically, I just did a query in the database for posts with links to my site, put the
pingback function in a loop for those posts and re-sent the pings to my site (just the pings to my site).
If you use custom URLs, you need to account for them in 3 places:
- The permalinks that get output on your site.
- The query parsing that decides what to show.
I’ve now got all ~200 or so internal pingbacks added in to my site. The dates aren’t right, but you can’t have everything. 🙂
The second issue is somewhat moot as it doesn’t exist in the upcoming WP 2.2 codeline, however a small hack around the
if have_posts() call in the wp-commentsrss2.php file seems to have fixed it up until I upgrade to 2.2.
These things have bugged me for months but I was busy with other things, I’m very glad to finally have them fixed.