В чем разница между использованием true или false внутри update_user_meta () - PullRequest
0 голосов
/ 12 июня 2019

Я пытаюсь обновить мета-значение в моей базе данных, используя update_user_meta. Если я передаю true в функцию, она не обновляет мета-значение, но если я использую false, она обновляет. Так в чем же разница между этими двумя?

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

Ответы [ 3 ]

0 голосов
/ 12 июня 2019

Хорошо, что касается https://codex.wordpress.org/Function_Reference/update_user_meta, мы можем сказать, что четвертый параметр определяет

> Previous __value__ to check before removing.

Видите, проверяется ЗНАЧЕНИЕ ,Поэтому перед обновлением поля event_year wp проверяет, хранит ли это поле это определенное значение.И вы говорите - сохраненное значение true.Я не совсем уверен, как true преобразуется в тексте запроса, но, вероятно, после передачи его в текст запроса wp не может подтвердить, что удаленное значение совпадает с true .Поэтому обновление не происходит.

В случае falsefalse можно считать таким же, как значение по умолчанию для четвертого параметра - '' (пустая строка)), вы говорите wp - ничегочтобы проверить здесь, просто обновите, если значение изменилось.

0 голосов
/ 12 июня 2019

$ prev_value => Необязательно. Если указано, обновлять только существующие записи метаданных с указанным значением. В противном случае обновите все записи.

update_user_meta() передает update_metadata(), и это объяснение есть https://core.trac.wordpress.org/browser/tags/5.2.1/src/wp-includes/meta.php LINE 151

0 голосов
/ 12 июня 2019

Описание последнего параметра не является правильным методом, которому вы следуете.

это будет похоже,

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

3-й параметр заменит на 4-й параметр, поэтому в вашем случае он заменит истину на 8

Эта функция имеет 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.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...