在不丢失旧数据的情况下更新用户元

时间:2015-03-25 作者:jothikannan

这是否可以更新用户元而不丢失其拥有的旧数据?

例如:

我的用户元字段名中有以下数据user_documents

a:4:{i:0;s:36:"817fb3ec8e2412b141bcc40c1e16d4c9.jpg";i:1;i:91;i:2;s:27:"8769106-alone-wallpaper.jpg";i:3;i:92;}
这是关于随附文件的user_documents meta,如果用户上载更多文件,我想将其存储到user_documents 再次但不失去上面的旧元。

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

若我正确理解了这个问题,那个么您希望在用户元字段中存储多个文件的名称。add_user_meta 函数有第四个参数$unique 默认情况下为false,这意味着每次调用add_user_meta 即使密钥已经存在,也会添加一个新的键值对。

add_user_meta 澄清程度低于add_post_meta 这对帖子来说也是一样的。这里写着,它是如何工作的

请注意,如果指定帖子的自定义字段中已经存在给定的键,则会添加另一个具有相同键的自定义字段,除非$unique参数设置为true,在这种情况下,不会进行任何更改。如果要更新现有键的值,请改用update\\u post\\u meta()函数。

因此,您在上载文件时将调用add_user_meta 使用新文件名。

add_user_meta($user_id, \'user_documents\',\'filename.txt\');
每次它都会添加一个新的对,可以使用get_user_meta 作用

get_user_meta($user_id, \'user_documents\'); // set $single to false to fetch all values against \'user_documents\' key.
它将返回根据“user\\u documents”存储的所有值的数组。

要更新文件名,需要提供要更新的文件名。

update_user_meta($user_id, \'user_documents\', \'filename.txt\',\'new_filename.txt\');
也可以通过指定特定的文件名来删除文件。

delete_user_meta($user_id, \'user_documents\', \'filename.txt\')
我希望,这能说明你会怎么做。

结束

相关推荐