Fixing Batcache to Send The Correct Content-Type Header

I’m a fan of Batcache, the Memcached-based WordPress full-page cache solution, but I’ve discovered that it ignores the content-type header set when the page is initially generated and re-sends all content with content-type: text/html. I posted a note about this at the WordPress support forums, but then I realized what the problem was: apache_response_headers() doesn’t [...]

Many Eyes, Bugs Being Shallow, All That

WordPress 2.5.1 added a really powerful feature to register_taxonomy(): automatic registration of permalinks and query vars to match the taxonomy. Well, theoretically it added that feature. It wasn’t working in practice. After some searching yesterday and today, I finally found the bug and worked up a fix. I made a diff and set off to [...]

WordPress Strips Classnames, And How To Fix It

WordPress 2.0 introduced some sophisticated HTML inspecting and de-linting courtesy of kses.
kses is an HTML/XHTML filter written in PHP. It removes all unwanted HTML elements and attributes, and it also does several checks on attribute values. kses can be used to avoid Cross-Site Scripting (XSS), Buffer Overflows and Denial of Service attacks.
It’s a good addition, [...]

bsuite Bug Fixes (release b2v7)

Work on bsuite3 is progressing well, thanks to help from Zach and Matt, who are collaborating with me on completely rearchitecting how stats are collected and reported. This, however, is not bs3. It’s a transitional release intended to fix some bugs in b2 and make upgrading easier. This upgrade is recommended for all current bsuite [...]

Ecto vs. WordPress

Ecto is finally available in Intel optimized form, but WP 2.1’s XMLRPC breaks it. Cliffy, of all people, tells us how to fix it.
Now, when is Ecto 3 coming out?
Aside: this blog post explains how to hack up the XMLRPC to extract the tags Ecto is sending. This was interesting to me a long time [...]

Displaying Google Calendars in PHP iCal

PHP iCalendar solves a couple problems I’m working on, but I needed a solution to fix the duration display for Gcal-managed ICS calendars.
As it turns out, a fix can be found in the forums, and the trick is to insert the following code in functions/ical_parser.php.

case ‘DURATION’:
if (($first_duration == TRUE) && (!stristr($field, ‘=DURATION’))) {
ereg (’^P([0-9]{1,2}[W])?([0-9]{1,2}[D])?([T]{0,1})?([0-9]{1,2}[H])?([0-9]{1,2}[M])?([0-9]{1,}[S])?’, $data, [...]

bsuite Bug Fixes (release b2v6)

Update: bugfix release b2v7 available.
It’s been a while since I released a new version of bsuite, my multi-purpose WordPress plugin. I’d been hoping to finish up a series of new features, but those have been delayed and this is mostly just a collection of bugfixes. This update is recommended for all bsuite users.
bsuite Features

Tracks page [...]

bsuite Bug Fixes (release b2v3)

I’ve fixed another bug in bsuite b2, my multi-purpose plugin. This update is recommended for all bsuite users.
Fixed

Previous versions would throw errors at the bottom of the page when the http referrer info included search words from a recognized search engine. 

Installation
Follow the directions for the bsuite b2 release. The download link there will always fetch [...]

bsuite Bug Fixes (release b2b)

I’ve fixed a couple bugs in bsuite b2, released last week.
Fixes

A bug with search word highlighting that caused it to litter the display in some cases. 
A silly mistake of mine that cause a mysql error for some users.

Installation
Follow the directions for the bsuite b2 release. The download link there will always fetch the current version.
Upgrades [...]