As you're interested in generating custom themes for WordPress, you'll be very happy to know (especially all you web standards evangelists) that WordPress really does separate content from design.
You may already know from painful experience that many content management and blog systems end up publishing their content pre-wrapped in (sometimes large) chunks of layout markup (sometimes using table markup), peppered with all sorts of predetermined selector id
and class
names.
You usually have to do a fair amount of sleuthing to figure out what these id
and classes
are so that you can create custom CSS rules for them. This is very time consuming.
The good news is, WordPress publishes only two things:
The site's textual content—the text you enter into the post and the page administration panels
Supplemental site content wrapped in list tags—
<li>
and</li>
—which usually links to the posts and pages you've entered and the meta information for those items
That's it! The list tags don't even have an ordered or unordered defining tag around them. WordPress leaves that up to you. You decide how everything published via WordPress is styled and displayed.
The culmination of all those styling and display decisions, along with special WordPress template tags that pull your site's content into you design, are what your WordPress theme consists of.