How to Create a Custom Page Template in WordPress: A Step-by-Step Guide

Creating custom page templates in WordPress can transform your site’s look and functionality. Whether you want a unique landing page, a full-width design, or a special layout for events, custom page templates give you full control. Here’s your complete guide

1. Why Use a Custom Page Template in WordPress

WordPress uses templates to render pages, but the default layout (page.php) might not always suit your needs. Some themes restrict layout flexibility. By creating a custom page template, you get features like:

  • Custom structure (e.g., full-width, left/right sidebars)
  • Landing pages with unique headers, footers, or styles
  • Targeted content (e.g., a login form, portfolio, or event layout)

This allows you to reuse a layout across multiple pages—keeping your design consistent and efficient.

2. Understanding WordPress Template Hierarchy

WordPress chooses templates based on a hierarchy:

  1. Assigned custom page template
  2. page-{slug}.php
  3. page-{ID}.php
  4. Default page.php
  5. singular.php
  6. Fallback index.php

So, if you assign a template manually in the editor, it’ll override everything else.

3. Method 1: Manual Custom Page Template (PHP File)

Step 1: Copy the Default page.php

Start by duplicating your theme’s page.php—this ensures you maintain structure and style.

Step 2: Add the Template Header

At the very top, add:

<?php
/*
 * Template Name: Full Width Page
 * Description: A full-width layout without sidebar
 */
?>

This header makes your template available in the Page Attributes menu.

Step 3: Modify Layout

For example, you can remove the sidebar:

get_header();
// ...content code...
get_footer();

Or add custom sections: sliders, login forms, sidebars, etc.

Step 4: Save and Upload

Name the file descriptively (e.g., page-fullwidth.php) and upload it to your theme folder (wp-content/themes/your-theme/). You can also create a page-templates subfolder for organization—just be sure WordPress can locate it.

Step 5: Assign the Template

In the WordPress dashboard, go to Pages → Edit a page → in the Page Attributes sidebar, choose your new template from the Template dropdown.

Step 6: Test and Refresh

If results aren’t visible:

  • Clear browser and plugin cache.
  • Confirm get_header() and get_footer() calls are intact.
  • Ensure no conflicting templates like page-slug.php are overriding your custom version.

4. Method 2: Block Editor (Full Site Editing)

If you’re using a Block Theme or full-site editor (FSE):

  1. Go to Appearance → Editor → Templates
  2. Click Add Template, or edit an existing one.
  3. Start from a blank or patterned layout.
  4. Insert content blocks (like Header, Footer, Content).
  5. Save the template—now available for assignment.

5. Method 3: Using Plugins & Page Builders (e.g., Elementor)

If you’re using Elementor or similar page builders:

  1. Install and activate the plugin.
  2. Navigate to Templates → Add New → Page.
  3. Choose or build a template using drag-and-drop.
  4. Save it—templates show up in “My Templates”.
  5. From Pages → Edit → use Elementor → insert the template.

Creating custom page templates in WordPress empowers you to design unique, reusable page layouts—from full-width pages to landing and login pages. Whether you prefer manual PHP, block editor, plugins, or dynamic approaches, each method is effective when used correctly.