wake-up-neo.net

Unterschied zwischen update_user_meta und update_user_option

Kann jemand erklären, was der Unterschied zwischen update_user_meta und update_user_option ist und in welchen Szenarien die beiden verwendet werden können?

10
mpsbhat

Für Laien gibt es keinen großen Unterschied! update_user_option() verwendet update_user_meta() intern. Der einzige Unterschied besteht darin, dass update_user_option() dem Optionsnamen das Präfix für die Datenbanktabelle + die Blog-ID voranstellt, wenn Sie sich an mehreren Standorten befinden, und nur dem Tabellenpräfix, wenn Sie sich an einer einzelnen Site befinden.

Schauen Sie sich den Code von update_user_option() an

/**
 * 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 );
}

Dem Optionsnamen wird das Tabellenpräfix + die Blog-ID vorangestellt (nur wenn die ID nicht 1 und 0 ist).

Wenn Sie den letzten Parameter $global auf true setzen, hat dies keinen Unterschied zu update_user_meta().

Zweck der Funktion update_user_option()

Im Gegensatz zu anderen Tabellen erstellt WordPress nicht für jede Site eine eigene Tabelle für usermeta. Es speichert Benutzerinformationen in einer Usermeta-Tabelle für alle Blogs (in Multisite). Es wird lediglich der Schlüsselname für jede Site mit blog prefix vorangestellt, z. für die Blog-ID 4 wird wp_capabilities als wp_4_capabilities gespeichert.

Alle Informationen, die Sie mit update_user_option() speichern, z. B. key_name_abc, werden zu wp_key_name_abc für den Hauptstandort bei der Installation an mehreren Standorten oder bei der Installation an einem einzelnen Standort. Wenn Sie Ihre einzelne Site in eine Site mit mehreren Sites umwandeln, sind die Informationen künftig nur auf der Haupt-Site verfügbar.

Verwenden Sie diese Funktion, wenn Sie der Meinung sind, dass einige Informationen auch von der Site und dem Benutzer abhängen. Nicht wie Name, E-Mail usw., da diese Informationen vom Benutzer und der Site unabhängig sind.

7
Sumit

Beide schreiben ihre Daten in die Tabelle "usermeta". In der usermeta-Tabelle gespeicherte Benutzeroptionen behalten das Präfix der wordpress-Tabelle bei, z. wp_ während das Benutzer-Meta, das ebenfalls in der usermeta-Tabelle gespeichert ist, dies nicht tut.

Benutzeroptionen unterstützen blogspezifische Optionen, die für mehrere Standorte nützlich sind. Das Benutzer-Meta basiert auf den benutzerspezifischen Metadaten wie Profilinformationen.

Die Parameter sind in der Tat sehr unterschiedlich. Die Benutzeroption hat $ user_id, $ option_name, $ newvalue, $ global und das Benutzer-Meta hat $ user_id, $ meta_key, $ meta_value, $ prev_value.

Hier sind einige Werte für beide Optionen und user usermeta.

Optionen

  • wp_user_level
  • wp_user-settings
  • wp_capabilities
  • wp_user-settings-time

Nutzer

  • vorname
  • nachname
  • spitzname
  • rich_editing
  • show_admin_bar_front
  • admin_color

https://codex.wordpress.org/Function_Reference/update_user_option#Parameters

https://codex.wordpress.org/Function_Reference/update_user_meta#Parameters

Die Codex-Seiten-Beispiele bieten eine praktische Anwendung.

7
Jarmerson