在update_user_meta()内部使用true或false有什么区别

时间:2019-06-12 10:25:51

标签: php wordpress

我正在尝试使用update_user_meta更新数据库中的元值。如果将true传递给函数,则不会更新元值,但是如果使用false,它将更新。那么两者之间有什么区别?

update_user_meta(1, 'event_year', '8', true);
update_user_meta(1, 'event_year', '8', false);

3 个答案:

答案 0 :(得分:0)

对最后一个参数的描述不是您要遵循的正确方法。

就像

//changes 'true' to '8'
update_user_meta(1, 'event_year', '8', true);

第3个参数将替换为第4个参数,因此在您的情况下,将第8个参数替换为true

此功能有4个参数:

$user_id : The user id.
$meta_key : Metadata name to be updated.
$meta_value : Metadata new value.
$prev_value :previous value of metadata. It is optional so if supplied, only metadata with that value will be updated otherwise all metadata with supplied $meta_key will be updated.

答案 1 :(得分:0)

好的,参考https://codex.wordpress.org/Function_Reference/update_user_meta,我们可以说第四参数定义了

> Previous __value__ to check before removing.

请参见,已选中价值。因此,在更新您的event_year字段wp之前,请检查此字段是否存储此定义的值。您说-存储的值为true。我不太确定如何在查询文本中转换 true ,但是可能在将其传递给查询文本wp之后无法确认删除的值是否与 true 相同。 。这就是为什么更新不会发生。

如果使用false(并且false与第四个参数的默认值-''(空字符串)相同),您告诉wp-无需检查在这里,只要值更改就更新。

答案 2 :(得分:0)

$ prev_value =>可选。如果指定,则仅使用指定的值更新现有的元数据条目。否则,更新所有条目。

update_user_meta()中继到update_metadata(),这里有https://core.trac.wordpress.org/browser/tags/5.2.1/src/wp-includes/meta.php第151行