Wordpress 将用户元保存为单个值或数组

Wordpress 将用户元保存为单个值或数组,wordpress,Wordpress,我正在开发一个插件,它将为绑定到插件的特定用户保存大约10个自定义用户元。在这些元中,我们发现:地址、邮政编码、职业等 这些元将仅由插件使用,并且大部分(如果不总是)它们将一起从数据库中获取,并显示在管理员的表视图中 所以,我在考虑保存这些值的最佳方法 我可以这样做: add_user_meta( $user_id, 'address', 'kings street 45'); add_user_meta( $user_id, 'zip', '12345'); add_user_meta( $u

我正在开发一个插件,它将为绑定到插件的特定用户保存大约10个自定义用户元。在这些元中,我们发现:地址、邮政编码、职业等

这些元将仅由插件使用,并且大部分(如果不总是)它们将一起从数据库中获取,并显示在管理员的表视图中

所以,我在考虑保存这些值的最佳方法

我可以这样做:

add_user_meta( $user_id, 'address', 'kings street 45');
add_user_meta( $user_id, 'zip', '12345');
add_user_meta( $user_id, 'occupation', 'nurse');
... some more meta
还是这样做更好:

add_user_meta( $user_id, 'plugin_name_user_meta', array(
    'address' => 'kings street 45'
    'zip' => '12345'
    'occupation' => 'nurse')
    ... some more meta
);

在WordPress中,我更喜欢使用数组,因为In有助于保持数据的有序性,所以我会选择第二种方式。尽管如此,如果您选择第一种方式,请在所有
meta
前面加上与您的插件相关的唯一ID。

我不同意第一个答案,我会使用您的第一个建议

为什么??因为如果对每个字段使用
add\u user\u meta
,则数据库中每个值都有一个单独的字段。这意味着:

1) 您可以执行元查询和通配符查询例如“选择ZIP以11开头的所有用户”。如果保存数组,这是不可能的,尤其是因为数组将以序列化格式保存

保持这种可能性有朝一日,您可能希望对这些数据进行复杂的查询,即使目前情况并非如此

看看WP元查询类,更好的是WP用户查询类:

2) 在可扩展性方面没有缺点:因为这些字段已经保存在元表中,而不是固定列中,所以可以动态添加和删除值

然而@Juan在前缀上的提示是正确的:为了避免冲突,您应该明确地为您的meta_值添加前缀