# wp_insert_attachment()

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

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

## Сигнатура

```php
wp_insert_attachment( string|array $args, string|false $file = false, int $parent_post_id, bool $wp_error = false, bool $fire_after_hooks = true ): int|WP_Error
```

## Описание

Если задать 'ID' в параметре $args, это будет означать обновление и попытку обновить вложение. Имя или заголовок вложения также можно задать, установив ключ 'post_name' или 'post_title'.
Даты вложения можно задать вручную, указав значения ключей 'post_date' и 'post_date_gmt'.
По умолчанию для комментариев используются стандартные настройки того, разрешены ли комментарии. Их можно закрыть вручную или оставить открытыми, задав значение ключа 'comment_status'.
См. alsowp_insert_post()

## Параметры

- `$args` `string|array` — обязательный. Аргументы для вставки вложения.
- `$file` `string|false` — необязательный, по умолчанию `false`. Имя файла.
- `$parent_post_id` `int` — необязательный. ID родительской записи или 0, если родителя нет. Значение по умолчанию 0.
- `$wp_error` `bool` — необязательный, по умолчанию `false`. Возвращать ли WP_Error в случае сбоя.
- `$fire_after_hooks` `bool` — необязательный, по умолчанию `true`. Следует ли запускать хуки, срабатывающие после вставки.

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

`int|WP_Error` — WP_Error

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

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

```php
function wp_insert_attachment( $args, $file = false, $parent_post_id = 0, $wp_error = false, $fire_after_hooks = true ) {
	$defaults = array(
		'file'        => $file,
		'post_parent' => 0,
	);

	$data = wp_parse_args( $args, $defaults );

	if ( ! empty( $parent_post_id ) ) {
		$data['post_parent'] = $parent_post_id;
	}

	$data['post_type'] = 'attachment';

	return wp_insert_post( $data, $wp_error, $fire_after_hooks );
}
```

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

- 5.6.0 — Added the $fire_after_hooks parameter.
- 4.7.0 — Added the $wp_error parameter to allow a WP_Error to be returned on failure.
- 2.0.0 — Introduced.

## Связанные

Использует: [`wp_insert_post`](https://chugunov.pro/api-wordpress/functions/wp_insert_post/), [`wp_parse_args`](https://chugunov.pro/api-wordpress/functions/wp_parse_args/).
Используется в: `WP_REST_Attachments_Controller::edit_media_item`, `WP_REST_Attachments_Controller::insert_attachment`, `WP_Site_Icon::insert_attachment`, [`wp_ajax_crop_image`](https://chugunov.pro/api-wordpress/functions/wp_ajax_crop_image/), `File_Upload_Upgrader::__construct`, [`wp_generate_attachment_metadata`](https://chugunov.pro/api-wordpress/functions/wp_generate_attachment_metadata/), [`media_handle_upload`](https://chugunov.pro/api-wordpress/functions/media_handle_upload/), [`media_handle_sideload`](https://chugunov.pro/api-wordpress/functions/media_handle_sideload/), [`wp_import_handle_upload`](https://chugunov.pro/api-wordpress/functions/wp_import_handle_upload/), `Custom_Image_Header::insert_attachment`, `Custom_Image_Header::step_2_manage_upload`, `Custom_Background::handle_upload`, [`wp_update_post`](https://chugunov.pro/api-wordpress/functions/wp_update_post/), `wp_xmlrpc_server::mw_newMediaObject`.

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