我需要为用户存储一个额外的值。我在用户页面和“添加新用户”页面上添加了一个额外字段。添加新用户时,使用“update\\u user\\u meta”存储额外值:
update_user_meta($user_id, \'new_value\', $_POST[\'the new value\']);
我添加了这样一个值,但在注销用户并登录之后,这个元值似乎是空的。我用
print_r(get_user_meta( 12 ));
打印所有元值。那么,元数据只是临时存储的吗?那它们有什么用呢?
我需要永久存储一个额外的用户值,就像“电子邮件”一样——我该怎么做?编辑:另一方面-用户“first\\u name”和“last\\u name”另存为meta values, 这些值不会丢失。那么,如何保存自定义的元数据呢?
Edit: 问题解决了-我没有意识到我在“profile\\u update”上有另一个操作,它在用户页面上更新用户时重写了值。所以我只需要摆脱第二个动作:
add_action(\'user_register\', \'save_custom_user_profile_fields\');
add_action(\'profile_update\', \'save_custom_user_profile_fields\');
最合适的回答,由SO网友:WPTC-Troop 整理而成
update_user_meta
将按照您的期望永久存储该值。然而,在您的情况下,有多个场景可以释放这些数据。这就是你看到空结果的原因。
首先检查您何时运行update_user_meta
. 是否在每个页面请求上都有。如果是,那么$_POST[\'the new value\']
不应该是空的。如果为空,则将更新空值。
所以请检查您的update_user_meta
执行以及当时是否$_POST[\'the new value\']
是否可用。
附加说明:如果该字段是用户可更新的,则在弹出元框时会回显正确的值。如果它没有打印值,那么将有空的值过帐到您的保存功能。
如果以上都没有给你任何线索。Penter code here
请张贴您的完整代码