检索指定对象的已注册元数据。

原型

get_registered_metadata( string $object_type, int $object_id, string $meta_key = '' )

描述

结果包括专门为对象的子类型注册的元和为整个对象类型注册的元。

参数

$object_type (string) (Required) 要为其请求元数据的对象类型。 (例如评论,帖子,期限,用户)

$object_id (int) (Required) 元数据所针对的对象的ID。

$meta_key (string) (Optional)  已注册的元数据键如果未指定,则检索指定对象的所有已注册元数据。

返回值

(mixed)  如果指定,则为键的单个值或值数组。所有已注册键的数组和对象ID的值(如果不是)。如果未注册给定的$ meta_key,则返回false。

源文件

路径:wp-includes/meta.php

<?php
...
function get_registered_metadata( $object_type, $object_id, $meta_key = '' ) {
	$object_subtype = get_object_subtype( $object_type, $object_id );
	if ( ! empty( $meta_key ) ) {
		if ( ! empty( $object_subtype ) && ! registered_meta_key_exists( $object_type, $meta_key, $object_subtype ) ) {
			$object_subtype = '';
		}
		if ( ! registered_meta_key_exists( $object_type, $meta_key, $object_subtype ) ) {
			return false;
		}
		$meta_keys     = get_registered_meta_keys( $object_type, $object_subtype );
		$meta_key_data = $meta_keys[ $meta_key ];
		$data = get_metadata( $object_type, $object_id, $meta_key, $meta_key_data['single'] );
		return $data;
	}
	$data = get_metadata( $object_type, $object_id );
	if ( ! $data ) {
		return array();
	}
	$meta_keys = get_registered_meta_keys( $object_type );
	if ( ! empty( $object_subtype ) ) {
		$meta_keys = array_merge( $meta_keys, get_registered_meta_keys( $object_type, $object_subtype ) );
	}
	return array_intersect_key( $data, $meta_keys );
}
...
?>

其他

英文文档:https://developer.wordpress.org/reference/functions/get_registered_metadata/