Customizing Template Files
are PHP source files used to generate the pages requested by visitors, and are output as HTML. Template files are made up of HTML, PHP, and .
Let's look at the various templates that can be defined as part of a Theme.
WordPress allows you to define separate templates for the various aspects of your site. It is not essential, however, to have all these different template files for your site to fully function. Templates are chosen and generated based upon the , depending upon what templates are available in a particular Theme.
As a Theme developer, you can choose the amount of customization you want to implement using templates. For example, as an extreme case, you can use only one template file, called index.php as the template for all pages generated and displayed by the site. A more common use is to have different template files generate different results, to allow maximum customization.
Template Files List
Here is the list of the Theme files recognized by WordPress. Of course, your Theme can contain any other stylesheets, images, or files. Just keep in mind that the following have special meaning to WordPress -- see for more information.
- The main stylesheet. This must be included with your Theme, and it must contain the information header for your Theme.
- The rtl stylesheet. This will be included automatically if the website's text direction is right-to-left. This can be generated using thethe RTLer plugin.
- The main template. If your Theme provides its own templates, index.php must be present.
- The comments template.
- The front page template, it is only used if you use a static front page.
- The home page template, which is the front page by default. If you use a static front page this is the template for the page with the latest posts.
- The single post template. Used when a single post is queried. For this and all other query templates, index.php is used if the query template is not present.
- The single post template used when a single post from a custom post type is queried. For example, single-book.php would be used for displaying single posts from the custom post type named "book". index.php is used if the query template for the custom post type is not present.
- The page template. Used when an individual Page is queried.
- The category template. Used when a category is queried.
- The tag template. Used when a tag is queried.
- The term template. Used when a term in a custom taxonomy is queried.
- The author template. Used when an author is queried.
- The date/time template. Used when a date or time is queried. Year, month, day, hour, minute, second.
- The archive template. Used when a category, author, or date is queried. Note that this template will be overridden by category.php,author.php, and date.php for their respective query types.
- The search results template. Used when a search is performed.
- Attachment template. Used when viewing a single attachment.
- Image attachment template. Used when viewing a single image attachment. If not present, attachment.php will be used.
- The 404 Not Found template. Used when WordPress cannot find a post or page that matches the query.
These files have a special meaning with regard to WordPress because they are used as a replacement for index.php, when available, according to the , and when the corresponding returns true. For example, if only a single post is being displayed, the function returns 'true', and, if there is a single.php file in the active Theme, that template is used to generate the page.
At the very minimum, a WordPress Theme consists of two files:
Both of these files go into the Theme directory. The index.php is very flexible. It can be used to include all references to the header, sidebar, footer, content, categories, archives, search, error, and any other page created in WordPress.
Or, it can be divided into modular template files, each one taking on part of the workload. If you do not provide other template files, WordPress may have default files or functions to perform their jobs. For example, if you do not provide a searchform.php template file, WordPress has a default function to display the search form.
Typical template files include:
Using these template files you can put template tags within the index.php master file to include these other files where you want them to appear in the final generated page.
- To include the header, use get_header().
- To include the sidebar, use get_sidebar().
- To include the footer, use get_footer().
- To include the search form, use get_search_form().
Here is an example of the include usage:
<?php get_sidebar(); ?> <?php get_footer(); ?>
The default files for some template functions may be deprecated or not present, and you should provide these files in your theme. As of version 3.0, the deprecated default files are located in
. For example, you should provide header.phpfor the function to work safely, and comments.php for the function .
For more on how these various Templates work and how to generate different information within them, read the documentation.