मेरी भूमिकाएँ बहु-साइट / नेटवर्क में क्यों नहीं दिखाई दे रही हैं?


16

मेरा नेटवर्क कुछ साइटों में भूमिकाएं दिखा रहा है और दूसरों में नहीं।

किसी कारण से जो मैं समझा नहीं सकता, जब मैं एक नया उपयोगकर्ता जोड़ता हूं, तो मेरे पास मेरे नेटवर्क में उप-साइट के ड्रॉप डाउन बॉक्स में चुनने के लिए कोई भूमिका नहीं है। इसके अलावा, किसी साइट को सौंपा गया मेरा नया उपयोगकर्ता उस साइट के लिए मेरे उपयोगकर्ताओं की सूची में नहीं दिखा रहा है।

क्या यह कुछ तय करने योग्य है?

वर्तमान स्थिति की एक छवि के नीचे।

भूमिकाएं नहीं दिखा रहा है

नीचे मुख्य भूमिकाओं को ठीक से दिखाने वाली तस्वीर है, लेकिन नेटवर्क की उप-साइटें नहीं हैं।

रोल्स दिखा रहा है

जवाबों:


30
  1. अपनी मल्टीसाइट ब्लॉग आईडी निर्धारित करें। मैं एक उदाहरण के रूप में 99 का उपयोग करूंगा
  2. डेटाबेस में जाएं
  3. इस तालिका पर जाएं: wp_##_options(wp_99_options) - आपके पास प्रत्येक ब्लॉग के लिए एक तालिका होगी
  4. जहां रिकॉर्ड मिल option_name=wp_user_roles
  5. टेक्स्ट wp_user_rolesको wp_##_user_roles("wp_99_user_roles") में बदलें

तालिका आप संपादन कर रहे होगा option_id, blog_id, option_name, option_value, autoload। हालांकि, जहां रिकॉर्ड = को छोड़कर किसी भी रिकॉर्ड को न बदलें । इस तरह इस तालिका में केवल एक ही रिकॉर्ड होगा।option_namewp_user_roles

wp_user_roles का उपयोग तब किया जाता है जब कोई मल्टीसाइट इंस्टॉलेशन नहीं होता है, और यहां, ऐसा प्रतीत होता है जैसे कि यह केवल एक बग था जब टेबल बनाया गया था।


धन्यवाद! यहां जीवन रक्षक सलाह। यह सही उत्तर है।
ज़मोज़

1
मेरे पास मेरे टेबल में NO "wp_user_roles" था, जो मैंने किया था वह wp_4_options> wp_user_roles (एक बड़ी json ऑब्जेक्ट या एक क्रमबद्ध ऐरे, I dolnow) की सामग्री को wp_5_options नामक एक नए रिकॉर्ड में कॉपी कर रहा था (यह ब्लॉग गायब भूमिकाएं थी) और यह मेरी समस्या ठीक कर दी। फिर भी +1 न किया गया क्योंकि इसने मुझे सही रास्ते पर
ला दिया

मैंने मुख्य wp_options तालिका से "wp _ ## _ user_roles" रिकॉर्ड को याद करते हुए हल किया, क्योंकि यह wp _ ## _ विकल्पों में से एक को ओवरराइड करने लगता है।
पाओलो

1
शानदार जवाब!
jnthnclrk

7
उन लोगों के लिए जिन्होंने आपकी साइट को माइग्रेट किया है और उपसर्गों को बदल दिया है, त्रुटि "{new_prefix} _ ## _ user_roles" के बजाय "wp _ ## _ user_roles" हो सकती है
Xhynk

2

यदि यह समस्या है जो मुझे अच्छी तरह से पता है, तो आप अपने एमयू स्थापित के पीछे एक मेमेचे सेटअप स्थापित कर रहे हैं? मैंने पाया है कि विकल्प ऑब्जेक्ट के लिए जाहिरा तौर पर कैश इश्यू (2.9 में देखा गया) जहां कुछ अच्छा (जैसे wp_user_roles कुंजी) "नोटटॉप" मेमेकचे सरणी में फंस जाता है।

यदि आप atc memcache चलाते हैं, और यह एक possiblity की तरह लगता है, तो 11211 के माध्यम से मशीन में टेलनेट करने की कोशिश करें। टाइप करें delete blogid:options:notoptions, जहां ब्लॉगिड उस ब्लॉग की आईडी है जिस पर आप समस्या देखते हैं। व्यवस्थापक पैनल को ताज़ा करें और देखें कि क्या ड्रॉपडाउन में भूमिकाएँ हैं। यदि हां, तो आपको अपनी समस्या मिल गई है।

अद्यतन करें : ठीक है, तो आपको अपनी समस्या नहीं मिली - आप मेमकेच नहीं चला रहे थे। मैं अभी भी भूमिकाओं की जांच करूंगा, एक भ्रष्ट या गैर-मौजूद व्यक्ति की तलाश करूंगा। मेरा मानना ​​है कि यह आपकी सर्वश्रेष्ठ लीड है। आप विकल्प तालिका को डंप करने के लिए इस कोड का उपयोग कर सकते हैं:

global $wpdb;
$array = $wpdb->get_col("SELECT option_name FROM $wpdb->options");
foreach ($array as $key) {
    echo $key . ": <code>";
    var_dump(get_option($key), true));
            echo "</code><br/>";
}

संपादक। मुझे नहीं पता कि मेरे सर्वर में मेमकेच कैसे आया। मैं इसका बिल्कुल उपयोग नहीं कर रहा हूं। शायद इसलिए मैंने w3 कैश स्थापित किया। मैंने डिलीट करने की कोशिश की, इससे मुझे एक मैसेज मिला, जिसमें कहा गया था कि not_found। मैंने आगे बढ़कर मेमकेच को निष्क्रिय कर दिया, क्योंकि मैं इसका उपयोग नहीं कर रहा हूं। मैं अभी भी इस मुद्दे पर चल रहा हूं।
जियो

मुझे खेद है कि आपकी समस्या का समाधान नहीं था। मैं इसमें बहुत भागता हूं इसलिए यह मेरा सबसे अच्छा अनुमान था। मैं उस ब्लॉग के लिए रोल्स ऑब्जेक्ट पर नज़र रखूँगा। क्या यह मौजूद है? उपरोक्त मेरे उत्तर को आशाओं में अपडेट करने में मदद मिलेगी।
संपादक

1

वर्डप्रेस को फिर से स्थापित करने और एक अपडेट्राफ्ट प्लस बैकअप से पुनर्स्थापित करने के बाद मुझे मल्टीसाइट इंस्टॉलेशन के साथ यह समस्या थी।

जब मैंने user_rolesरिकॉर्ड की जाँच की , तो विकल्प_नाम अभी भी मूल चार वर्ण उपसर्ग पर सेट किया गया था, जैसे कि pre1_user_roles, जबकि दूसरी स्थापना के लिए उपसर्ग कुछ इस तरह था pre2_user_roles

मैंने इसे अपडेट किया pre2_user_rolesऔर विकल्प तुरंत उपयोगकर्ता विकल्प पृष्ठ में दिखाई दिए।


1

धन्यवाद। यह समस्या डीबगिंग के 10 घंटे के ठोस प्रतिनिधित्व करती है। यह मेरे लिए एक वास्तविक भालू था।

इस पर थोड़ा विस्तार करने के लिए, मैंने अपनी साइट पर एक फ़ंक्शन जोड़ा है जो आपको इस मुद्दे को हल करने की अनुमति देगा यदि आप प्रोग्राम प्रोग्राम बना रहे हैं।

मूल रूप से, यह देखने के लिए जांच करेगा wp_user_rolesकि क्या निर्दिष्ट ब्लॉग में सेट किया गया था। यदि यह है, तो फ़ंक्शन wp_user_rolesसही तरीके से एक नया विकल्प सेट करने के लिए उपयोग करेगा ।

  /**
   * Sometimes, user roles do not properly get set when a new site is set up
   * To fix this issue, we check to make sure the data is added properly and update if not
   * See /wordpress/11725/why-are-my-roles-not-visible-in-a-multi-site-network
   */
function maybeAddUserRoles($blog_id){
    switch_to_blog($blog_id);
    if(get_option('wp_user_roles')){
      update_option('wp_'.$blog_id.'_user_roles', get_option('wp_user_roles'));
      delete_option('wp_user_roles');
    }
    restore_current_blog();
  }

0

मैं सिर्फ इस लेख के लिए धन्यवाद कहना चाहता था क्योंकि मैं लंबे समय से इस समस्या का हल खोज रहा हूं।

यह केवल इसलिए था क्योंकि मैंने अपनी साइटों को क्लोन करने के लिए एक प्लगइन का उपयोग किया था और यह कभी भी wp_##_user_rolesठीक से अपडेट नहीं हुआ । जब इस पर कॉपी की गई साइट wp_13...को एक नई साइट पर क्लोन किया गया था, wp_81...लेकिन यह प्रविष्टि अभी भी अटकी हुई थी wp_13


0

मैं केवल यह बताना चाहता हूं कि कुछ लोगों के पास अभी भी एक खाली साइट उपयोगकर्ता तालिका हो सकती है - विशेष रूप से उनकी रूट साइट के लिए। यदि यह समस्या होती है, तो इसे ठीक करने का तरीका निम्नलिखित है:

  1. तालिका wp_usermeta पर जाएं
  2. मेटा_की wp_capabilities के साथ कोई भी प्रविष्टि प्राप्त करें
  3. Meta_key को wp_capabilities से बदलकर wp_1_capabilities करें

मेरा मानना ​​है कि "1" हमेशा रूट साइट की आईडी होती है।

चीयर्स।


wp_उपसर्ग Sinde सेट किया गया है wp-config.phpऔर बस चूक wp_1वास्तव में रूट साइट है। लेकिन इसका होना जरूरी नहीं है 1क्योंकि यह एक अनोखी और वेतन वृद्धि करने वाली आईडी है जो ऑटो जनरेट होती है।
कैसर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.