WordPress is a great blogging system to just plug in and blog. Everything you need is right there, it’s optimized for blogging awesomeness. Just works on so many levels.
But it’s not so hot if you want to change something, like the look of your site, the theme.
There are tons of themes available for WordPress… People like using pre-made themes, because it hurts so bad to make your own. To make a new WordPress theme, you rip the presentational layer of code off, and put another one on. That’s like a car, where if you want a new paint job, you have to rip the outer body off and weld a new one onto the bare frame.
A lot of people have customized their themes, it but every time I’ve messed with the theme on my blog it’s just led to sadness and dysfunction, which is why I eventually reverted it back to the boring default theme.
I’ve been messing around lately with Textpattern, which is more of a CMS-which-is-set-up-by-default-as-a-blog than a blogging package as such. It was created by Dean Allen, creator of Textile, a very elegant simple markup language, designed to allow you to write in plain text without a bunch of angle brackets, and have your machine translate it into proper HTML. Textile is baked right in to Textpattern, of course.
Textpattern is a really beautiful system. The web interface for the writer/administrator is sophisticated, elegant, and powerful. It’s designed so that once you set it up, everything you need is in the web interface — you should never have to use FTP or the command line to mess with it or add anything to it. (Though maybe you’d need that for a complete upgrade, I don’t know.)
And guess what — it has a templating system you can use to control the look of your site. I mean besides “rewrite the front-end in PHP.” You can rewrite your site, sure, but you do it in the administrative interface, using a system of tags that exist for that purpose. You’re not going to accidentally open giant security holes by playing amateur programmer in a notoriously insecure language…. Sure, you *can* write plugins in PHP to add functionality if the existing functionality isn’t good enough, but hacking PHP is not de rigeur.
I’m just impressed as heck.
Oh, there’s another thing I just remembered, it might have been the thing that got me thinking WordPress might not be so hot. I moved my blog from one host to another, and all my uploaded images/files from the entire history of my site got hosed. I searched like crazy through the database and eventually found what seemed to be the relevant table and column. The column was filled with a bunch of line noise and embedded in it, a set of local paths from my old host. Not knowing what the line noise was, I tried doing a search and replace on those, putting in there the paths from the new host, which just hosed it worse. I asked about this on a WordPress board somewhere and was told that that line noise was serialized PHP expressions.
The database had serialized PHP expressions in it. Huh.
So there was no conceivable way I could fix this stuff by manipulating the database alone. I’d have to write some PHP to pull that stuff out, figure out what format it was in, fix it, and put it back in in serialized form.
I still haven’t gotten around to that, and all my uploaded files are still broken.
Thanks, WordPress! You let PHP bleed into the presentation layer, why not let it bleed into the database as well! Everything’s better when you sprinkle some PHP into it! Cheez.
So I’m thinking about switching. But oh man, switching blog software is a pain. What do you do with all your old posts? You can import them, sure, there’s a wordpress import thingy. But all the permalinks will be different, and such value as I might offer to the search engine world will disappear. I could *force* the permalinks to be the same, I guess, but you know some things are going to break in the import anyway. That way lies madness.
That’s the sort of thing that keeps me from wanting to actually switch over the Blog that Goes Ping. But man, textpattern is so nice. I don’t know how long I can hold out.
Oh, one downside — I’ve tested my desktop blogging client, Ecto, with it, and there are some time zone issues; it posts things into the future. Haven’t figured that one out yet.