Wordpress’ default theme and template are a complete mess
Wednesday, September 3rd, 2008I am very upset about this sad realization. For the last couple of days, I was working on the design & development of a new blog. I will not name it now, it is still full of test posts and therefore it would be really meaningless to link to it right now. Anyway, I had a couple of options. To look for a nice wp-theme and fiddle it, to play with the default or classic themes and create a new look and functionality out of them or, finally, write one from scratch. The last option is the wisest option however it has been nearly 1 year that I haven’t been interested in any piece of wordpress code. So, I was also not familiar with versions newer than 2.0.x. Therefore I first opted for the second solution and started tweaking the default theme.
The default wordpress theme is a great failure. It is of course very famous because it is the default wordpress theme. First off all, it is not standards compliant. Especially the order and usage of CSS selectors are catastrophic. I will only name one for now. There is this header part, then there is this blog name section which correctly marked as h1. But then there is this description section marked as a div. This is the most common failure among amateur “web masters” who are just introduced to web standards. The description section should have been coded as a p class=”description” or p id=”description”. There is no need for a div. This is a big error but this is maybe the smallest semantic error in the whole wordpress default theme.
The CSS file is exactly a turmoil. There are many classes identified more than once and that makes it very confusing to work with them. The use of ems are a complete failure. So much that when you change an h2’s em value, it shows up in different sizes gradually. No, of course I am talking about the same class of h2! It is in the commentlist section. Go see it for yourself. Change the em value there, for instance change the em of h2 from 1.2em into 1.6em, it ends up showing growing sizes as comments continue.
And no, I am not using Internet Explorer. I am testing everything on Firefox 3, Internet Explorer 7, Konqueror (Safari), Internet Explorer 6, respectively. I can’t waste my time to tell all the errors in this default themes CSS file. I want to go into some other catastrophe that the web suffers because of those default and classic wordpress themes.
Many advanced wordpress themes are built by tweaking the default one or the classic one. And that’s a good thing, because once they put those two templates into wordpress core and ship them together, there is no reason as not to be sure about they are the right thing to go from. However, unless you strip all the CSS at once and start writing CSS from scratch by using selectors and classes from the template source, it is impossible to produce a coherent design. It’s awful. Look at the CSS file of the theme “White as Milk”. The author clearly state it in the CSS file as a comment:
THE FOLLOWING CODE IS DERIVED FROM THE DEFAULT “KUBRICK” THEME.
THE STRUCTURE AND LAYOUT IS IN MY OPINION, NOT THE WAY CSS SHOULD
BE ORGANIZED, BUT FOR NOW I AM LEAVING IT THE WAY IT IS TO KEEP
IT CONSISTENT.
As a matter of fact, since almost all themes are derived from the classic or default layouts, it is almost impossible to change and tweak them for the majority. It’s not sufficient to know CSS, you have to master it to a degree where you can find some other people’s errors in it and fix them.
The classic template is not as faulty as the default template but it is also very deceiving. For instance, it doesn’t have a real footer where stands below all the content and sidebar. Instead, the footer stands just under the content. It is not compatible with the widget functionality of a standard wordpress installation. Even not with the latest version shipped!
Briefly, this is a shame. Many wordpress users just think that they don’t know enough CSS. They are wrong. CSS is in fact quite easy but it depends on good mark-up on the template side, and clearly written CSS files. The beauty of CSS and web standards is in their usability, easiness, practicality.
I don’t think that those faulty history of the default and classic templates of wordpress is going to end here. They couldn’t fix it for years right now. It looks like they are even not aware of what is wrong. The turmoil still continues with K2.
I had to heavily tweak the default template files on a very detailed level. This was meaningless. This can be a whole lot better.
I hope somebody pays attention to work on a such important issue.