The two main parts of a template are the content management code and the theme. These should be kept separate so that the theme can easily be changed without affecting the structure. For example, the styles should be defined in an external style sheet and not embedded in the HTML code of the pages. The structure of a website will be defined by a set of templates. It is good practise to make the templates modular rather than having page templates containing all the code for each page. This allows site-wide changes to be easily applied. For example, the footer may be mostly identical between pages.
We might divide a page template into a header, content, sidebar and footer where these are in separate files. The content will change most between pages, so rather than having a content file, we include the content into a page file which pulls in the individual template files and defines the unique features of that page. The unique features of a page will be the title, description and article content. We can define these at the start of the page template with say PHP code to set the value of variables that are used by the other templates such as the header template. Then we assemble the page by including the required templates and inserting the content.