I've built quite a few sites with WordPress now, but the part I always find frustrating is the start — having to peel back all the cruft from one of the bundled themes to get a baseline I can build up from.
So I've spent some time recently building a theme template that I can use to hit the ground running on new WordPress projects. It's called WordPress Startline, and it's free and open source on GitHub.
Reinventing the wheel?
I know there are several similar projects out there, but building this one myself has given me exactly the baseline I want for Wordpress projects, and given me a quick refresher in WordPress internals and PHP generally, plus a crash course in Microdata and Microformats 2.
Startline's markup is valid, accessible HTML5, extended with structured data in the form of Microdata and Microformats 2, so it provides a clean, search-friendly baseline and lets you do the rest yourself (if you're like me, you'll want to).
Startline also includes clean markup for comments and the respond form, and makes them easily customisable in their own template files (I've always found this lacking in other themes).
WordPress is a self-styled semantic publishing platform, and generally does a good job, but it does have some bad habits when it comes to markup, which I've tried to mitigate where possible.
Firstly, almost every link it generates has a
title attribute, all of which offer little if any more information than the link text itself. This is probably intended to be an accessibility feature, but I think it's better to write sensible link text in the first place and not waste impaired users' time by telling them what the link is twice. Startline refrains from vomiting up redundant
<img> elements generated by the writing interface get
height attributes forced on them. This used to be a widely recommended performance optimisation, to reduce repaints and reflows as images loaded, but these days we are designing responsively and images need to be flexible rather than rigid, so these attributes do more harm than good most of the time. Startline has a function that strips them out.
Yes — I am bad at names. I originally liked "Foundations" but there's already a popular front-end framework called Foundation so I thought better of it.
If you ever build anything with WordPress, I really encourage you to give it a try, and any feedback or contributions would be very welcome (I'm far from a PHP expert, so I expect to see some bugs pop up).
Meanwhile, I'm going to use it as a starting point for a long-overdue rebuild of my own site.