# set_post_type()

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

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

## Сигнатура

```php
set_post_type( int $post_id, string $post_type = 'post' ): int|false
```

## Описание

Кэш страницы или записи будет очищен для указанного ID записи.

## Параметры

- `$post_id` `int` — необязательный. ID записи, у которой меняется тип. Значение по умолчанию 0.
- `$post_type` `string` — необязательный, по умолчанию `'post'`. Тип записи. Принимает, например, 'post' или 'page'. Значение по умолчанию 'post'.

## Возвращаемое значение

`int|false`

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

Файл: `wp-includes/post.php:2383`

```php
function set_post_type( $post_id = 0, $post_type = 'post' ) {
	global $wpdb;

	$post_type = sanitize_post_field( 'post_type', $post_type, $post_id, 'db' );
	$return    = $wpdb->update( $wpdb->posts, array( 'post_type' => $post_type ), array( 'ID' => $post_id ) );

	clean_post_cache( $post_id );

	return $return;
}
```

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

- 2.5.0 — Introduced.

## Связанные

Использует: [`clean_post_cache`](https://chugunov.pro/api-wordpress/functions/clean_post_cache/), [`sanitize_post_field`](https://chugunov.pro/api-wordpress/functions/sanitize_post_field/), `wpdb::update`.

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