一个用户-元键中的多个用户-元值

时间:2014-05-30 作者:dcolumbus

目前,我正在使用密钥添加用户元数据position_name 以及表示用户位置的字符串值,这样我可以通过调用的方式检索用户的位置,类似于:

$position = get_user_meta(22, \'position_name\', true);
这非常适合每个用户一个位置,但我希望能够将每个用户与多个位置关联起来。将在position_name 实地考察是实现这一目标的适当方式吗?

我希望这有意义。。

1 个回复
最合适的回答,由SO网友:bosco 整理而成

如果你退房the documentation for the update_user_meta() function, 您会注意到$meta_value 参数已接受对象和数组,因此您只需在数组中保存用户的位置,无需任何额外的操作:

update_user_meta(
    22,
    \'position_names\',
    array(
        \'Khaleesi of the Great Grass Sea\',
        \'Breaker of Chains\',
        \'Mother of Dragons\'
    )
);
用户元函数已经为您负责序列化和取消序列化数组(分别将其转换为字符串和从字符串转换)。请注意the documentation for get_user_meta() 指定最后一个参数$single 指示是直接返回一个元值,还是返回数组中的所有值。您希望获得所有position_names、 所以你应该通过false$single 或者完全忽略参数(在这种情况下,它将默认为false):

$position_names = get_user_meta( 22, \'position_names\' );

//$position_names[0] === \'Khaleesi of the Great Grass Sea\'
//$position_names[1] === \'Breaker of Chains\'
//$position_names[2] === \'Mother of Dragons\'
如果使用update_user_meta() 将来要存储对象(或关联数组),请知道您可能会遇到bug #9640

结束

相关推荐

错误:CALL_USER_FUNC_ARRAY()要求参数1是有效的回调

我在将wordpress升级到3.6版本后遇到了问题,请参阅下面显示在wordpress管理面板上而不是网站正面的错误。警告:call\\u user\\u func\\u array()要求参数1是有效的回调,未找到函数“regis\\u options”,或者wp includes/plugin中的函数名无效。php在线406警告:无法修改标题信息–标题已由wp includes/option中的(输出开始于wp includes/plugin.php:406)发送。php在线571警告:无法修改标题