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.
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;
}