因此,post meta或user meta的问题是,如果您的密钥是,例如。_group_members_value_key
每个用户或每个帖子只有一项数据用于存储数据,并且您需要many 每个用户的项目和many 每个职位的项目。这是两列数据,但在元表中只有一列。
假设您有以下数据:
User ID | Group Id
1 | 10
1 | 20
1 | 30
2 | 10
2 | 40
3 | 30
要将其放入例如user 1的usermeta中,您有以下选择:
user id | meta_key | value
1 | "_group_members_value_key" | "10,20,30"
或:
user id | meta_key | value
1 | "_group_members_value_key_10" | "yes"
1 | "_group_members_value_key_10" | "yes"
1 | "_group_members_value_key_10" | "yes"
注意,在第二种情况下,必须将组ID作为键的一部分。
因此,也许第二种解决方案适合您—只需将组id添加到键中,并使用一些额外的逻辑,如:
要将用户放入组中,请执行以下操作:
update_user_meta($userId, "_group_members_value_key_" . $groupId, "yes")
要从组中删除用户,请执行以下操作:
update_user_meta($userId, "_group_members_value_key_" . $groupId, "no")
要检查用户是否在组中,请执行以下操作:
if (get_user_meta($userId, "_group_members_value_key_" . $groupId) == "yes") {
查找组中的所有用户:
$user_query = new WP_User_Query( array( \'meta_key\' => "_group_members_value_key_" . $groupId, \'meta_value\' => \'yes\' ) );
我不确定这是否适合你想做的事情。让我知道。这些都是代码示例,因此您可能需要对它们进行一些编辑,以满足您的需要,但此数据结构应该适合您的需要。
看起来$_POST[\'group_members_field\']
将是一个数组,因此如果它是post ID,则需要执行以下操作:
foreach($_POST[\'group_members_field\'] as $postId) {
update_user_meta($someUserId, \'_group_members_value_key\'.$postId, "yes");
}