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 CMS 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 pre-determined 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 only publishes 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, which pull your site's content into design, are what your WordPress theme consists of.