What is a Theme Framework?

I have been reading the book called "Build you own wicked wordpress themes and now reached chapter 4 -Theme Frameworks. I’m still new to web designing and this chapter is a little technical for me. Is theme framework another term for ready made template? I don’t want to skim or skip this chapter just because the topic is bit technical.

Would be really thankful if someone could explain it to me in a non-technical form. :slight_smile:

Hi clestcruz.

I won’t pretend to know much about WordPress, but “framework” in various parts of web design means a bunch of ready-made code that provides a starting point—rather than you having to do everything from scratch. In other words, a lot of the hard stuff is done for you already.

In terms of building WP themes, it’s probably better to learn how to do this from scratch so that you better understand how themes are built and how they work. Still, a framework will no doubt save a lot of time.

A theme framework probably does come ready to use, but its real purpose is to provide a starting point to which you make modifications. It’s unlikely that any theme you pick would be ready to use, as you’ve at least got to change the title and default text.

Anyhow, I’ll move this thread to the CMS forum and let experienced practitioners give a more knowledgeable reply.

Thanks for answering. I think i’m starting to get the idea how the framework is made upon further research. Basically the parts of the framework came from a HTML file. That HTML file is cut into several parts.

HTML(index.html) -Header.php, Index.php, Sidebar.php and Footer.php.

Correct me if i’m wrong.

Hi Clestcruz,

You might this article from WordPress beginner about Theme Frameworks to be a useful read.

At it’s simplest, a WordPress theme framework allows you to create a custom theme stylesheet (CSS) , a child style sheet, that alters the appearance of a WordPress theme without needing to create/ modify the core theme files (the php files). The main advantage to using theme frameworks is that in the event of a security fix to WordPress it is much easier to update without worrying about the update breaking the appearance of the theme.

I agree with Ralph.m that you should build a theme from scratch to understand how it all fits together, for writing a theme the official WordPress Theme Development documentation is a helpful resource.

You mention that you are new to web design, you might want to learn a bit about PHP and MySQL before you work with WordPress because they are the underlying technologies. (SitePoint has the book: PHP and MySQL from novice to Ninja) or if you prefer their is a [URL=“https://learnable.com/courses/php-mysql-web-development-for-beginners-13”]Learnable course on it as well.

Thanks for advice. I dug up some research regarding my question and also googled the word framework that it also means structure. During one my classes our IT professor always told us to concentrate on structure first before content, having to use 960.gs in developing or organizing . I guess this what framework is right?

Yes, and also remember that the cart goes before the horse, not after. :slight_smile:

(Which is to say … he’s got things the wrong way around. Content should dictate site layout. One of the downsides of frameworks—and there are many—is that they encourage people to force content into a layout, when a layout really should be built to enhance content.)

As a general rule that is a very good definition of the word framework, but I think that in a WordPress context the meaning of the word has evolved to also have the meaning of a code library to facilitate theme development.

The bottom line with whatever design and development that you do is to always use the right tool for the job…and to remember to have a well-stocked toolkit. (Sometimes the best tool would be html and css, other times it’s writing a theme from scratch and other times it is using a theme framework…you get the idea). But always have a reason why you chose a particular tool, and that should come from the content.

Remember the reason that people visit a website is always for the content and that is why it should define the structure.

Hmmm content should dictate a site layout? I don’t get the idea. Structure first and content is how we do things or how he taught us. Well from my perspective can also be correct. Containers, div or layout first then content.

Perhaps this question would help: Would you use the same layout for a photography portfolio and a restuarant site, or a craft/ recipe site and a doctor’s website?

When I am referring to content - I am referring to the type of content (e.g. recipe/ article/ photography) which informs the underlying structure…which is why your content influences your layout and not the other way round.

As trishacornelius said, people come to your site for the content, not for the layout. If you start with a template, you’ll find yourself squeezing content into a bunch of pre-defined boxes … which may not be appropriate for the content at all. It will likely make a mess of the content, make it hard to find what’s needed, and lose visitors.

Creating a website is like constructing a building: the best buildings are designed around what people actually will need to do in that building. Too many buildings are built on a kind of template that really takes no account of what people will use the building for, making the building uncomfortable, confusing and ill-suited to the need.

IT courses tend to have a poor reputation for being out of touch with standards and best practices.

I think i understand now regarding your explanation and i think i have read about this in themeshaper.com. Having a balance of structure and content and removing un-wanted structure.

That’s exactly it…the bottom line is always start with the question of what is it that people will be doing on the site.
Design is for people, not for machines :slight_smile:

Thanks for the information really appreciate it. By the way in the design and development in making a wordpress theme. The design starts by encoding the website in HTML/CSS first. I mean a fully functional website in HTML/CSS. Then slicing each parts of the index.html into header.php, index.php, footer.php so on and so forth to be ready for wordpress. Of course there are additional codes to added.