Many beginners ask where to start learning WordPress theme development. While the learning path varies, a solid foundation in HTML, CSS, and JavaScript is essential. PHP knowledge is beneficial, but WordPress provides many pre-built functions you can use directly.
Understanding WordPress template hierarchy is also crucial. For a detailed guide, refer to this article: WordPress Template Hierarchy and Customization Methods.
This article provides a reference list of essential template files and common header functions for WordPress theme development.
Essential Template Files
| File Name | Description |
|---|---|
| style.css | Main stylesheet (required for theme info) |
| index.php | Main template (fallback for all pages) |
| header.php | Header section |
| footer.php | Footer section |
| sidebar.php | Sidebar widget area |
| single.php | Single post display |
| page.php | Static page display |
| archive.php | Archive pages (categories, tags, dates) |
| category.php | Category archive (overrides archive.php) |
| tag.php | Tag archive (overrides archive.php) |
| search.php | Search results page |
| searchform.php | Search form template |
| 404.php | 404 error page |
| comments.php | Comments template |
| front-page.php | Static front page (overrides home.php) |
Common Header Functions
| Function | Description |
|---|---|
<?php bloginfo('name'); ?> |
Site title (from Settings > General) |
<?php bloginfo('description'); ?> |
Site tagline (from Settings > General) |
<?php bloginfo('url'); ?> |
Site URL (home address) |
<?php bloginfo('stylesheet_url'); ?> |
URL of the active theme's style.css |
<?php bloginfo('template_url'); ?> |
URL of the active theme's directory |
<?php wp_title(); ?> |
Page/Post title (for <title> tag) |
<?php bloginfo('charset'); ?> |
Blog charset (usually UTF-8) |
<?php bloginfo('rss2_url'); ?> |
Main RSS 2.0 feed URL |
<?php bloginfo('pingback_url'); ?> |
Pingback URL |
<?php get_stylesheet_directory(); ?> |
Server path to the active theme's directory |
Usage Example
A typical header.php snippet using these functions:
<!DOCTYPE html>
<html <?php language_attributes(); ?>>
<head>
<meta charset="<?php bloginfo('charset'); ?>">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title><?php wp_title('|', true, 'right'); ?><?php bloginfo('name'); ?></title>
<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>">
<?php wp_head(); ?>
</head>
<body <?php body_class(); ?>>
<header>
<h1><a href="<?php echo esc_url(home_url('/')); ?>"><?php bloginfo('name'); ?></a></h1>
<p><?php bloginfo('description'); ?></p>
</header>
Remember to always include <?php wp_head(); ?> before </head> and <?php wp_footer(); ?> before </body> for proper plugin and theme functionality.