# _resolve_template_for_new_post()

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

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

## Сигнатура

```php
_resolve_template_for_new_post( WP_Query $wp_query )
```

## Описание

Статус auto-draft указывает на новую запись, поэтому экземпляру WP_Query разрешается возвращать запись-авточерновик для определения шаблона при редактировании новой записи.

## Параметры

- `$wp_query` `WP_Query` — обязательный. Текущий экземпляр WP_Query, передаваемый по ссылке.

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

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

```php
function _resolve_template_for_new_post( $wp_query ) {
	if ( ! $wp_query->is_main_query() ) {
		return;
	}

	remove_filter( 'pre_get_posts', '_resolve_template_for_new_post' );

	// Pages.
	$page_id = $wp_query->query['page_id'] ?? null;

	// Posts, including custom post types.
	$p = $wp_query->query['p'] ?? null;

	$post_id = $page_id ? $page_id : $p;
	$post    = get_post( $post_id );

	if (
		$post &&
		'auto-draft' === $post->post_status &&
		current_user_can( 'edit_post', $post->ID )
	) {
		$wp_query->set( 'post_status', 'auto-draft' );
	}
}
```

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

- 5.9.0 — Introduced.

## Связанные

Использует: `WP_Query::is_main_query`, `WP_Query::set`, [`current_user_can`](https://chugunov.pro/api-wordpress/functions/current_user_can/), [`remove_filter`](https://chugunov.pro/api-wordpress/functions/remove_filter/), [`get_post`](https://chugunov.pro/api-wordpress/functions/get_post/).

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