# load_template()

URL: https://chugunov.pro/api-wordpress/functions/load_template/
Проверено на WordPress 6.9, обновлено 06.08.2026.
Источник: независимый русскоязычный справочник chugunov.pro. Не является официальной документацией WordPress.

Тип: функция.
Появился в версии: 1.5.0.

## Сигнатура

```php
load_template( string $_template_file, bool $load_once = true, array $args = array() )
```

## Описание

Для файла шаблона настраиваются глобальные переменные, чтобы окружение WordPress было доступно внутри функции. Переменные запроса также доступны.

## Параметры

- `$_template_file` `string` — обязательный. Путь к файлу шаблона.
- `$load_once` `bool` — необязательный, по умолчанию `true`. Использовать require_once или require.
- `$args` `array` — необязательный, по умолчанию `array()`. Дополнительные аргументы, передаваемые в шаблон.

## Исходный код

Файл: `wp-includes/template.php:782`

```php
function load_template( $_template_file, $load_once = true, $args = array() ) {
	global $posts, $post, $wp_did_header, $wp_query, $wp_rewrite, $wpdb, $wp_version, $wp, $id, $comment, $user_ID;

	if ( is_array( $wp_query->query_vars ) ) {
		/*
		 * This use of extract() cannot be removed. There are many possible ways that
		 * templates could depend on variables that it creates existing, and no way to
		 * detect and deprecate it.
		 *
		 * Passing the EXTR_SKIP flag is the safest option, ensuring globals and
		 * function variables cannot be overwritten.
		 */
		// phpcs:ignore WordPress.PHP.DontExtract.extract_extract
		extract( $wp_query->query_vars, EXTR_SKIP );
	}

	if ( isset( $s ) ) {
		$s = esc_attr( $s ); // @phpstan-ignore variable.undefined (It's extracted from query vars.)
	}

	/**
	 * Fires before a template file is loaded.
	 *
	 * @since 6.1.0
	 *
	 * @param string $_template_file The full path to the template file.
	 * @param bool   $load_once      Whether to require_once or require.
	 * @param array  $args           Additional arguments passed to the template.
	 */
	do_action( 'wp_before_load_template', $_template_file, $load_once, $args );

	if ( $load_once ) {
		require_once $_template_file;
	} else {
		require $_template_file;
	}

	/**
	 * Fires after a template file is loaded.
	 *
	 * @since 6.1.0
	 *
	 * @param string $_template_file The full path to the template file.
	 * @param bool   $load_once      Whether to require_once or require.
	 * @param array  $args           Additional arguments passed to the template.
	 */
	do_action( 'wp_after_load_template', $_template_file, $load_once, $args );
}
```

## История изменений

- 5.5.0 — The $args parameter was added.
- 1.5.0 — Introduced.

## Связанные

Использует: [`esc_attr`](https://chugunov.pro/api-wordpress/functions/esc_attr/), [`do_action`](https://chugunov.pro/api-wordpress/functions/do_action/).
Используется в: [`do_feed_rdf`](https://chugunov.pro/api-wordpress/functions/do_feed_rdf/), [`do_feed_rss`](https://chugunov.pro/api-wordpress/functions/do_feed_rss/), [`do_feed_rss2`](https://chugunov.pro/api-wordpress/functions/do_feed_rss2/), [`do_feed_atom`](https://chugunov.pro/api-wordpress/functions/do_feed_atom/), [`locate_template`](https://chugunov.pro/api-wordpress/functions/locate_template/).

Оригинал в официальной документации: https://developer.wordpress.org/reference/functions/load_template/
