Last Updated on April 29, 2022 by WP Knowledge Hub
WordPress themes are created with a set of templates. In order to function, a WordPress theme needs (at the very least) an index.php template and a functions.php template. Of course, real themes come equipped with much more than that. Most themes come with these templates (or more):
- 404.php
- archive.php
- comments.php
- footer.php
- functions.php
- header.php
- index.php
- page.php
- search.php
- searchform.php
- single.php
- and a stylesheet, style.css
These templates, or parts, make up the theme which establishes your website’s basic design. Templates can be overridden to create a new layout, or to add additional content directly to the template. In order to understand how overriding templates work, you need to understand the WordPress Template Hierarchy.
Here is a basic example:
- A user visits a category archive on your website
- WordPress looks for a custom template in the theme for that category, which would look something like archive-yourcustomcategory.php
- If there is no specific custom template defined it will use a general archive.php template
- If there is no archive.php template, it will use index.php, the most basic template with a WordPress loop
How Do I Override WordPress Templates?
A basic post template is single.php, a basic page template is page.php, and a basic category template is archive.php.
Since WordPress looks for a custom template first, you have to create a custom template with this specific naming convention:
- single-yourcustomname.php
- page-yourcustomname.php
- archive-yourcustomname.php
There can also be templates defined by the slug of your page or post. If you have a page titled Checkout, whose slug is checkout, the specific template would be page-checkout.php.