# wp_maybe_generate_attachment_metadata()

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

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

## Сигнатура

```php
wp_maybe_generate_attachment_metadata( WP_Post $attachment )
```

## Описание

При необходимости пытается сгенерировать метаданные вложения, если они отсутствуют.

## Параметры

- `$attachment` `WP_Post` — обязательный. Объект вложения.

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

Файл: `wp-includes/media.php:5468`

```php
function wp_maybe_generate_attachment_metadata( $attachment ) {
	if ( empty( $attachment ) || empty( $attachment->ID ) ) {
		return;
	}

	$attachment_id = (int) $attachment->ID;
	$file          = get_attached_file( $attachment_id );
	$meta          = wp_get_attachment_metadata( $attachment_id );

	if ( empty( $meta ) && file_exists( $file ) ) {
		$_meta = get_post_meta( $attachment_id );
		$_lock = 'wp_generating_att_' . $attachment_id;

		if ( ! array_key_exists( '_wp_attachment_metadata', $_meta ) && ! get_transient( $_lock ) ) {
			set_transient( $_lock, $file );
			wp_update_attachment_metadata( $attachment_id, wp_generate_attachment_metadata( $attachment_id, $file ) );
			delete_transient( $_lock );
		}
	}
}
```

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

- 3.9.0 — Introduced.

## Связанные

Использует: [`wp_generate_attachment_metadata`](https://chugunov.pro/api-wordpress/functions/wp_generate_attachment_metadata/), [`get_transient`](https://chugunov.pro/api-wordpress/functions/get_transient/), [`set_transient`](https://chugunov.pro/api-wordpress/functions/set_transient/), [`delete_transient`](https://chugunov.pro/api-wordpress/functions/delete_transient/), [`wp_get_attachment_metadata`](https://chugunov.pro/api-wordpress/functions/wp_get_attachment_metadata/), [`wp_update_attachment_metadata`](https://chugunov.pro/api-wordpress/functions/wp_update_attachment_metadata/), [`get_attached_file`](https://chugunov.pro/api-wordpress/functions/get_attached_file/), [`get_post_meta`](https://chugunov.pro/api-wordpress/functions/get_post_meta/).
Используется в: [`edit_form_image_editor`](https://chugunov.pro/api-wordpress/functions/edit_form_image_editor/).

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