get_template_part( string $slug, string $name = null )

Load a template part into a template


Description Description

Makes it easy for a theme to reuse sections of code in a easy to overload way for child themes.

Includes the named template part for a theme or if a name is specified then a specialised part will be included. If the theme contains no {slug}.php file then no template will be included.

The template is included using require, not require_once, so you may include the same template part multiple times.

For the $name parameter, if the file is called “{slug}-special.php” then specify “special”.


Parameters Parameters

$slug

(string) (Required) The slug name for the generic template.

$name

(string) (Optional) The name of the specialised template.

Default value: null


Top ↑

Source Source

File: wp-includes/general-template.php

function get_template_part( $slug, $name = null ) {
	/**
	 * Fires before the specified template part file is loaded.
	 *
	 * The dynamic portion of the hook name, `$slug`, refers to the slug name
	 * for the generic template part.
	 *
	 * @since 3.0.0
	 *
	 * @param string $slug The slug name for the generic template.
	 * @param string $name The name of the specialized template.
	 */
	do_action( "get_template_part_{$slug}", $slug, $name );

	$templates = array();
	$name = (string) $name;
	if ( '' !== $name )
		$templates[] = "{$slug}-{$name}.php";

	$templates[] = "{$slug}.php";

	locate_template($templates, true, false);
}


Top ↑

Changelog Changelog

Changelog
Version Description
3.0.0 Introduced.

Top ↑

More Information More Information

Top ↑

Usage Usage

get_template_part( $slug );
get_template_part( $slug, $name );

Note: get_template_part() fails silently



Top ↑

User Contributed Notes User Contributed Notes

  1. Skip to note content
    Contributed by Codex

    Using loop.php in child themes
    Assuming the theme folder is wp-content/themes, that the parent theme is twentyten, and the child theme is twentytenchild, then the following code —

    <?php get_template_part( 'loop', 'index' ); ?>
    

    will do a PHP require() for the first file that exists among these, in this priority:

    wp-content/themes/twentytenchild/loop-index.php
    wp-content/themes/twentyten/loop-index.php
    wp-content/themes/twentytenchild/loop.php
    wp-content/themes/twentyten/loop.php

  2. Skip to note content
    Contributed by Codex

    Using with theme subfolders

    To use this function with subfolders in your theme directory, simply prepend the folder name before the slug. For example, if you have a folder called “partials” in your theme directory and a template part called “content-page.php” in that sub-folder, you would use get_template_part() like this:

    <?php get_template_part( 'partials/content', 'page' ); ?>
    
  3. Skip to note content
    Contributed by Codex

    Navigation
    Adding a navigation bar to theme using a generic nav.php template file:

    <?php get_template_part( 'nav' );           // Navigation bar (nav.php) ?>
    <?php get_template_part( 'nav', '2' );      // Navigation bar #2 (nav-2.php) ?>
    <?php get_template_part( 'nav', 'single' ); // Navigation bar to use in single pages (nav-single.php) ?>
    

You must log in before being able to contribute a note.