Monday, August 14, 2006

Wordpress Trackbacks Not Working With Qumana

I am a new blogger.

I have discovered that blogging tools are still somewhat crude.

I chose Wordpress as my blog server-side software, hosted by Dreamhost instead of using the Wordpress.com hosting service. Why? I already had the Dreamhost account and I wanted full control to use whatever version I wanted and to fix/enhance the software when needed. One of the advantages of an Open Source piece of software, like Wordpress, is that the user community gets to help make it better for everyone on the platform. A happy user community breeds a better Open Source product, and the cycle feeds, positively, on itself. I had dinner with Matt (Mr. Wordpress himself) at the O'Reilly Web 2.0 Conference last October in San Francisco. Wordpress has really taken off since then, so it seemed like a reasonable choice. I have been mostly happy with it. Until...

I also chose Qumana as my blog-writing client-side software. I wanted a WYSIWYG blog writing tool that allows for offline editing since I travel a great deal. I run exclusively on Apple Mac OS X. Wordpress has a list of available clients. I tried them all. Qumana is the best that's available today, but it has a number of annoying problems that I will get to in another post on another day. The current beta is free. TechCruch covers it here and here and here.

For today, I wanted to point out that, as a new blogger, the ability to send Trackbacks to articles that I comment on is pretty important. I am completely surprised that this appears to be a manual process:

  1. Visit the blog article that you are linking to

  2. Search down for "trackback" to see what the Trackback URI address is

  3. Select it and cut-and-paste, or right-clink and copy

  4. Paste it into the Trackbacks section of Qumana


OK, that's a pain, but at least it's a process with a known workflow.

The problem comes when you do "Publish Post" or "Update Post" to send your fine new article to your Wordpress server so that it can be posted, and can then ping all the trackback links for you. Wordpress 2.0.3 will not send out any of the trackbacks that you send it via the XML-RPC API that is used by blog editing software, like Qumana or MarsEdit or Ecto. When you edit the post in Wordpress, it will say "Send trackbacks to: Array". It will look something like:



Now, you are forced to:

  • Edit the article directly in Wordpress

  • Delete the "Array" part

  • Go find all your Trackback URI's again, one-by-one, as in the previous steps

  • Paste them into the Trackbacks field above, separated by spaces

  • Save the updated post in Wordpress


The worst part, though, is that after you save the post, some of the formatting is modified by Wordpress, causing the lines to wrap in Qumana in ways that you did not intend. Ugh. Fix the line breaks in Qumana and update it again. Heaven forbid if you actually added another Trackback address. I need a drink.

Annoyed, I took the morning off to fix it today.

There appears to be a bug that was opened about this issue, Ticket #1452 on Trac. The bug was opened one year ago, on June 18, 2005. It was fixed promptly by July 7, 2005, but the fix never worked. In November, Matt saw that the fix did not work and moved the resolution out to the 2.1 release (whenever that will be). I needed a fix now, so I found the problem and fixed it (the API was feeding it an "array", but the trackback code expected to get a "string" of Trackback URL's separated by whitespace). The fix was easy. Since I'm not familiar with the code, finding the fix took a couple of hours of old-school printf-style debugging.

My quick and dirty fix was as follows. Immediately after the following lines in xmlrpc.php:
$to_ping = $content_struct['mt_tb_ping_urls'];

Note that there are two lines in the file like the above line - one in mw_newPost and one in mw_editPost. You should add the following lines of code after each of them:
if (is_array($to_ping)) {
    $to_ping = implode("\n", $to_ping);
}

Update: As I wrote this article, I see that the Wordpress developers posted a patch for this very same problem TODAY at this link. Ah, if only I had procrastinated one more day... No matter. I learned a ton about PHP and the Wordpress architecture today. Also, their patch is completely different than mine and I have not tried their fix. Add a comment here if you do. Such is the life of concurrent software development.

Such is the life of a new blogger with fairly, ahem, "fresh" tools.

Tags: , , , , , ,

4 comments:

  1. [...] I’ve been using Qumana and have been mostly pleased with it. Especially given the price (free!). I wrote about my initial experiences here. Qumana has always been a bit rough around the edges, but I have found sufficient work-arounds to justify my loyalty. [...]

    ReplyDelete
  2. [...] mostly pleased with it. Especially given the price (free!). I wrote about my initial experiences here. Qumana has always been a bit rough around the edges, but I have found sufficient work-arounds to [...]

    ReplyDelete
  3. Bluehost is definitely one of the best hosting provider for any hosting services you require.

    ReplyDelete