函数文档

get_user_metavalues()

💡 云策文档标注

概述

get_user_metavalues() 是一个已弃用的 WordPress 函数,用于查询用户元数据以填充用户对象。它返回按用户 ID 索引的元值数组,供 _fill_user 和 _fill_many_users 使用。

关键要点

  • 函数已弃用:自 WordPress 3.3.0 起标记为弃用,建议使用替代方法。
  • 参数:接受用户 ID 数组作为必需参数。
  • 返回值:返回一个数组,键为用户 ID,值为包含元数据对象的数组。
  • 内部实现:通过 update_meta_cache() 获取元数据缓存,并转换为结构化对象数组。

代码示例

function get_user_metavalues($ids) {
    _deprecated_function( __FUNCTION__, '3.3.0' );

    $objects = array();

    $ids = array_map('intval', $ids);
    foreach ( $ids as $id )
        $objects[$id] = array();

    $metas = update_meta_cache('user', $ids);

    foreach ( $metas as $id => $meta ) {
        foreach ( $meta as $key => $metavalues ) {
            foreach ( $metavalues as $value ) {
                $objects[$id][] = (object)array( 'user_id' => $id, 'meta_key' => $key, 'meta_value' => $value);
            }
        }
    }

    return $objects;
}

注意事项

  • 弃用状态:此函数不应在新代码中使用,需查找替代方案以避免兼容性问题。
  • 性能考虑:直接操作元数据缓存可能影响性能,建议遵循 WordPress 核心最佳实践。

📄 原文内容

Perform the query to get the $metavalues array(s) needed by _fill_user and _fill_many_users

Parameters

$idsarrayrequired
User ID numbers list.

Return

array of arrays. The array is indexed by user_id, containing $metavalues object arrays.

Source

function get_user_metavalues($ids) {
	_deprecated_function( __FUNCTION__, '3.3.0' );

	$objects = array();

	$ids = array_map('intval', $ids);
	foreach ( $ids as $id )
		$objects[$id] = array();

	$metas = update_meta_cache('user', $ids);

	foreach ( $metas as $id => $meta ) {
		foreach ( $meta as $key => $metavalues ) {
			foreach ( $metavalues as $value ) {
				$objects[$id][] = (object)array( 'user_id' => $id, 'meta_key' => $key, 'meta_value' => $value);
			}
		}
	}

	return $objects;
}

Changelog

Version Description
3.3.0 Deprecated.
3.0.0 Introduced.