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

Load a template part into a template

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”.

Source file: wp-includes/general-template.php

View source



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


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

Default value: null

More Information


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

Note: get_template_part() fails silently

Used by


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);


User Contributed Notes

  1. 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:


  2. 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. 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.