Posted by Aleksey Baulin on Sunday, November 6, 2005 @ 4:24 pm in
wordpress,
tools
I’ve chosen WordPress as my blog engine for a number of reasons. One of the main reasons to try it was the promise of one-minute install procedure. And in fact I did install it just under a minute, to my surprise! Having done that, I set up to find a suitable theme that I would have liked, and did not really find one. But hey, it’s just me! One thing I did not want to have for sure was using one of those common themes that are replicated on hundreds, if not thousands of WordPress powered sites, even though I am not a web designer at all.
Here are some of the annoyances that I encountered while setting up the blog using WordPress:
- It was very unclear how to set up your theme elsewhere other than in WordPress internal themes directory. Blog was not the only thing I was going to have on the site, and I did not want my content to go somewhere deep inside the WordPress installation. After lots of experimenting, and reading of the WordPress code I found a solution. I set up a theme directory in my website root, and had the necessary constants set to point to that directory. Here is the contents of my /index.php:
<?php
if (!defined('WP_USE_THEMES')) {
define('WP_USE_THEMES', true);
}
if (!defined('TEMPLATEPATH')) {
define('TEMPLATEPATH', $_SERVER['DOCUMENT_ROOT'] . '/MyThemeDirectory');
}
require('./wp/wp-blog-header.php');
?>
- Wordpress support is a form of community support done by volunteers in the WordPress support forums. Developers seem to be rarely set to investigatate the problems, and that leaves experienced users no real option other than fix the problem themselves. I had this nasty problem with comments RSS feeds that I was fighting for over two weeks, and nobody could help me out there. I finaly figured out what’s happening, and put a fix in place in my copy of the code. I also submitted the bug report. The way it looks now it’s probably going to be fixed for the WordPress 1.6 release.
- For some things extra I put together a WordPress plugin for my installation that has a set of the functions I want. It is interesting, that a third of those functions are reimplementations of the WordPress’ standard functions that produce links, but do not provide the title attributes for the links, and have no way of passing those to them. I like having it all consistent and with the title for each link I have. I’ve also rewritten the calendar to not include any future posts, give me a slightly different interface, and (again!) provide the titles to the links. I tried to use some advanced features, such as replace the names of the templates that WordPress is looking for, and add some of my own using the template_redirect action, but failed miserably. Using the include()/require()/require_once() statement did not work and produced errors in completely distant places of the code. Partial success was when I used load_template() function, but in the end of the day that did not work either, giving me a set of similar problems for some of the templates I tried to include for specific actions. I finally gave up, after I discovered that it’s a long-standing problem. Needless to say that the support forum people were unable to help me with the problem (sigh).
As I studied the code a lot, I have an opinion on it. It’s a mixed opinion. The main thing is that the code just works for all standard applications and settings. That’s why people use it in the first place. Customizing it to suit your specific needs might be difficult, however, depending on what you want to accomplish. Some nontrivial bugs can drive you crazy, and I did not find much support in that area. I might not have looked in the right places for it though. The overall feel of the code that I’ve got was that it is structured well, yet it’s somewhat mushy, not clean and lean, and not very consistent. Also, it came as a shock to me when I turned on full warnings, and the system spit out a hundred of warning about undefined variables each time a blog page loaded in the browser. Hopefully the code gets improved as it matures.