Update_user_meta और update_user_option के बीच अंतर


11

क्या कोई समझा सकता है कि दोनों के बीच update_user_metaऔर update_user_optionकिन परिदृश्यों में अंतर हो सकता है?

जवाबों:


8

आम शब्दों में, कोई बड़ा अंतर नहीं है! आंतरिक रूप से update_user_option()उपयोग करता है update_user_meta()update_user_option()यदि आप एकल साइट इंस्टॉलेशन में हैं, तो केवल अंतर और डेटाबेस तालिका उपसर्ग + ब्लॉग आईडी के साथ विकल्प का नाम उपसर्ग है।

के कोड पर एक नज़र डालें 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 );
}

आपका विकल्प नाम तालिका उपसर्ग + ब्लॉग आईडी के साथ उपसर्ग है (केवल जब आईडी 1 और 0 के अलावा अन्य हो)।

आप पिछले पैरामीटर सेट करते हैं $globalकरने के लिए trueइसके साथ कोई अंतर नहीं है update_user_meta()

update_user_option()समारोह का उद्देश्य

अन्य तालिकाओं के विपरीत, WordPress प्रत्येक साइट के लिए usermeta के लिए अलग तालिका नहीं बनाता है। यह सभी ब्लॉग्स (मल्टीसाइट में) के लिए एक उपयोगकर्ता तालिका में उपयोगकर्ता जानकारी बचाता है। यह सिर्फ प्रत्येक साइट के लिए प्रमुख नाम उपसर्ग करता है blog prefixजैसे कि ब्लॉग आईडी 4 के wp_capabilitiesलिए संग्रहीत किया जाता है wp_4_capabilities

जो भी जानकारी तो आप उपयोग कर की बचत होगी update_user_option(), उदाहरण के लिए key_name_abcहो जाएगा wp_key_name_abcएकाधिक में या एक साइट स्थापना में मुख्य साइट के लिए। भविष्य में यदि आप अपनी एकल साइट को मल्टीसाइट में परिवर्तित करते हैं तो जानकारी केवल मुख्य साइट में उपलब्ध होगी।

जब आप सोचते हैं कि साइट + उपयोगकर्ता पर कुछ जानकारी निर्भर है, तो इस फ़ंक्शन का उपयोग करें। नाम, ईमेल आदि पसंद नहीं है क्योंकि ये जानकारी उपयोगकर्ता और साइट से संबंधित हैं।


7

दोनों अपना डेटा "usermeta" तालिका में लिखते हैं। Usermeta तालिका में संग्रहीत उपयोगकर्ता विकल्प वर्डप्रेस तालिका उपसर्ग जैसे wp_ को बनाए रखते हैं जबकि उपयोगकर्ता मेटा भी संग्रहित होता है usermeta तालिका में नहीं है।

उपयोगकर्ता विकल्प ब्लॉग-विशिष्ट विकल्पों का समर्थन करते हैं, जो मल्टीसाइट में उपयोगी हैं। उपयोगकर्ता मेटा प्रोफाइल की जानकारी जैसे उपयोगकर्ता आईडी विशिष्ट मेटा डेटा पर आधारित है।

मापदंडों वास्तव में काफी अलग हैं। उपयोगकर्ता विकल्प में $ user_id, $ option_name, $ newvalue, $ Global और उपयोगकर्ता मेटा में $ user_id, $ meta_key, $ meta_value, $ prev_value हैं।

यहां विकल्प और उपयोगकर्ता usermeta दोनों के लिए कुछ मान दिए गए हैं।

विकल्प

  • wp_user_level
  • wp_user-सेटिंग
  • wp_capabilities
  • wp_user-सेटिंग्स समय

उपयोगकर्ता

  • पहला नाम
  • उपनाम
  • उपनाम
  • 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

कोडेक्स पेज उदाहरण वास्तविक दुनिया का उपयोग प्रदान करते हैं।


1
क्या आप इस बारे में स्पष्ट हो सकते हैं कि ये कहाँ संग्रहीत हैं? आपका पहला वाक्य बताता है कि वे एक ही स्थान पर संग्रहीत हैं, लेकिन आपका दूसरा अर्थ है कि वे नहीं हैं, शायद एक स्पष्ट उदाहरण बेहतर होगा? ध्यान रखें कि जवाब आत्म निहित होना चाहिए, इसलिए वे अभी भी में linkrot सेट के बाद मतलब कोडेक्स भी खराब रखरखाव किया जाता है और devhub द्वारा प्रतिस्थापित किया जा।
टॉम जम्मू नॉवेल

@TomJNowell ये wp-include / user.php में पाया जा सकता है - आपको मेटा टेबल में मेटा और ऑप्शंस दोनों के मान मिलेंगे। मैं अपना उत्तर lol
Jarmerson
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.