Czy ktoś może wyjaśnić, jaka jest różnica między update_user_meta
a update_user_option
i w których scenariuszach zarówno mogą być wykorzystane?
W kategoriach laika nie ma zasadniczej różnicy! update_user_option()
wykorzystuje update_user_meta()
wewnętrznie. Jedyną różnicą jest update_user_option()
prefiks nazwy opcji z prefiksem tabeli bazy danych + identyfikator bloga, jeśli jesteś w wielu miejscach, i tylko prefiks tabeli, jeśli jesteś w instalacji pojedynczej witryny.
Spójrz na kod update_user_option()
/**
* Update user option with global blog capability.
*
* User options are just like user metadata except that they have support for
* global blog options. If the 'global' parameter is false, which it is by default
* it will prepend the WordPress table prefix to the option name.
*
* Deletes the user option if $newvalue is empty.
*
* @since 2.0.0
*
* @global wpdb $wpdb WordPress database abstraction object.
*
* @param int $user_id User ID.
* @param string $option_name User option name.
* @param mixed $newvalue User option value.
* @param bool $global Optional. Whether option name is global or blog specific.
* Default false (blog specific).
* @return int|bool User meta ID if the option didn't exist, true on successful update,
* false on failure.
*/
function update_user_option( $user_id, $option_name, $newvalue, $global = false ) {
global $wpdb;
if ( !$global )
$option_name = $wpdb->get_blog_prefix() . $option_name;
return update_user_meta( $user_id, $option_name, $newvalue );
}
Twoja nazwa opcji jest poprzedzona prefiksem tabeli + ID bloga (tylko gdy ID jest inne niż 1 i 0).
Jeśli ustawisz ostatni parametr, nie $global
będzie true
to miało różnicy update_user_meta()
.
Cel update_user_option()
funkcji
W przeciwieństwie do innych tabel, WordPress nie tworzy osobnej tabeli dla usermeta dla każdej witryny. Zapisuje informacje o użytkowniku w jednej tabeli usermeta dla wszystkich blogów (w wielu witrynach). Po prostu poprzedza nazwę klucza dla każdej strony, blog prefix
np. Dla bloga o identyfikatorze 4 wp_capabilities
jest przechowywany jako wp_4_capabilities
.
Tak więc wszelkie informacje, które zaoszczędzisz update_user_option()
, na przykład key_name_abc
staną się wp_key_name_abc
dla głównej witryny w instalacji na wielu stronach lub w pojedynczej lokalizacji. W przyszłości, jeśli przekształcisz swoją pojedynczą witrynę na wiele witryn, informacje będą dostępne tylko na stronie głównej.
Użyj tej funkcji, jeśli uważasz, że niektóre informacje zależą również od strony + użytkownika. Nie tak jak imię i nazwisko, adres e-mail itp., Ponieważ informacje te należą do niezależnych użytkowników i witryn.
Obaj zapisują swoje dane w tabeli „usermeta”. Opcje użytkownika przechowywane w tabeli usermeta zachowują prefiks tabeli wordpress, np. Wp_, podczas gdy meta użytkownika również przechowywana w tabeli usermeta nie.
Opcje użytkownika obsługują opcje specyficzne dla bloga, przydatne w wielu witrynach. Meta użytkownika jest oparta na meta danych specyficznych dla identyfikatora użytkownika, takich jak informacje w profilu.
Parametry są zupełnie inne. Opcja użytkownika ma $ identyfikator_użytkownika, $ nazwa_opcji, $ nowa wartość, $ globalna, a meta użytkownika ma $ identyfikator_użytkownika, $ klucz_meta, $ wartość_meta, $ poprzednia_wartość.
Oto niektóre wartości obu opcji i usermeta użytkownika.
Opcje
Użytkownik
https://codex.wordpress.org/Function_Reference/update_user_option#Parameters
https://codex.wordpress.org/Function_Reference/update_user_meta#Parameters
Przykłady stron kodeksu zapewniają rzeczywiste wykorzystanie.