Theme Structure

Below are the HTMLy theme structure:

themes/your-theme/
    css/
    img/
    js/
    404.html.php
    404-search.html.php
    layout.html.php
    main.html.php
    no-posts.html.php
    post.html.php
    profile.html.php
    static.html.php

404.html.php

To handle 404 error message.

404-search.html.php

If search doesn't have any result.

layout.html.php

This is the main layout for your theme.

main.html.php

The main content index as a posts list. Eg. in dynamic frontpage, category, tag, archive, or search result.

no-posts.html.php

If we don't have any blog posts.

post.html.php

An individual blog post.

profile.html.php

The profile page.

static.html.php

Template for for static page and sub-static page.

Custom Layout

Sometimes we need custom layout for all of things.

Front page

layout--front.html.php // only layout for front page
static--front.html.php // main content if we use static frontpage
main--front.html.php // main content if we use dynamic frontpage

Blog

This is for /blog url.

layout--blog.html.php
main--blog.html.php

Static page

Example is for /about page

layout--about.html.php // only layout for `/about` page
layout--static.html.php // layout for all static page
static--about.html.php // main content for `/about' page

Sub static page

Example this is /about/me page

layout--about--me.html.php // only layout for `/about/me` page
layout--about.html.php // parent template
static--about--me.html.php // main content for `/about/me' page
static--about.html.php // main content for parent template

Blog post

The blog post only available styling based on category.

layout--post--uncategorized.html.php // layout for all blog post with uncategorized category
layout--post.html.php // layout for all blog post
post--uncategorized.html.php // main content for individual post with uncategorized category.

Category

Example is uncategorized category.

layout--category--uncategorized.html.php
layout--category.html.php
main--category--uncategorized.html.php
main--category.html.php

Tags

Example is post tagged: github.

layout--tag--github.html.php
layout--tag.html.php
main--tag--github.html.php
main--tag.html.php

Archive

layout--archive.html.php
main--archive.html.php

Search

layout--search.html.php
main--search.html.php

Profile

layout--profile.html.php
layout--profile--username.html.php
profile--username.html.php

Type

Example type image

layout--type.html.php
layout--type--image.html.php
main--type.html.php
main--type--image.html.php