# filter_default_metadata()

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

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

## Сигнатура

```php
filter_default_metadata( mixed $value, int $object_id, string $meta_key, bool $single, string $meta_type ): mixed
```

## Описание

Подключается к фильтру default_{$object_type}_metadata и добавляет значение по умолчанию.

## Параметры

- `$value` `mixed` — обязательный. Текущее значение, переданное в фильтр.
- `$object_id` `int` — обязательный. ID объекта, к которому относятся метаданные.
- `$meta_key` `string` — обязательный. Ключ метаданных.
- `$single` `bool` — обязательный. Если true, возвращается только первое значение указанного $meta_key.
  
  Этот параметр не действует, если $meta_key не указан.
- `$meta_type` `string` — обязательный. Тип объекта, к которому относятся метаданные. Принимает 'blog', 'post', 'comment', 'term', 'user' или любой другой тип объекта со связанной таблицей метаданных.

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

`mixed` — $single $single

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

Файл: `wp-includes/meta.php:1584`

```php
function filter_default_metadata( $value, $object_id, $meta_key, $single, $meta_type ) {
	global $wp_meta_keys;

	if ( wp_installing() ) {
		return $value;
	}

	if ( ! is_array( $wp_meta_keys ) || ! isset( $wp_meta_keys[ $meta_type ] ) ) {
		return $value;
	}

	$defaults = array();
	foreach ( $wp_meta_keys[ $meta_type ] as $sub_type => $meta_data ) {
		foreach ( $meta_data as $_meta_key => $args ) {
			if ( $_meta_key === $meta_key && array_key_exists( 'default', $args ) ) {
				$defaults[ $sub_type ] = $args;
			}
		}
	}

	if ( ! $defaults ) {
		return $value;
	}

	// If this meta type does not have subtypes, then the default is keyed as an empty string.
	if ( isset( $defaults[''] ) ) {
		$metadata = $defaults[''];
	} else {
		$sub_type = get_object_subtype( $meta_type, $object_id );
		if ( ! isset( $defaults[ $sub_type ] ) ) {
			return $value;
		}
		$metadata = $defaults[ $sub_type ];
	}

	if ( $single ) {
		$value = $metadata['default'];
	} else {
		$value = array( $metadata['default'] );
	}

	return $value;
}
```

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

- 5.5.0 — Introduced.

## Связанные

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

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