Rollerim neden bir Birden Çok Sitede / Ağda görünmüyor?


16

Ağım, diğer sitelerde değil, bazı sitelerde rol gösteriyor.

Herhangi bir nedenle açıklayamıyorum, yeni bir kullanıcı eklediğimde, ağımdaki bir alt sitenin açılır kutusunda seçim yapabileceğim hiçbir rol yok. Ayrıca, bir siteye atanan yeni kullanıcım o sitenin kullanıcı listemde gösterilmiyor.

Bu düzeltilebilir bir şey mi?

Mevcut durumun bir görüntüsünün altında.

Gösterilmeyen Roller

Aşağıda, ana sitenin rolleri düzgün bir şekilde gösteren resim var, ancak ağın alt siteleri gösterilmiyor.

Gösterilen roller

Yanıtlar:


30
  1. Çok Siteli Blog Kimliğinizi belirleyin. 99'u örnek olarak kullanacağım
  2. Veritabanına git
  3. Bu tabloya gidin: wp_##_options(wp_99_options) - her blog için bir tablonuz olacak
  4. Kaydı bulun nerede option_name=wp_user_roles
  5. Metni değiştirme wp_user_roles için wp_##_user_roles( "wp_99_user_roles")

Eğer sahip olacak düzenliyor tablo option_id, blog_id, option_name, option_value, autoload. Ancak, kayıt = dışında herhangi bir KAYIT DEĞİŞTİRMEYİN . Bu tabloda böyle tek bir kayıt olacaktır.option_namewp_user_roles

wp_user_roles Multisite kurulumu olmadığında kullanılır ve burada, tablo oluşturulduğunda sadece bir hatamış gibi görünür.


Teşekkür ederim! Burada hayat kurtaran tavsiyeler. Bu TAM doğru cevap.
ZaMoose

1
Masamda NO "wp_user_roles" vardı, ne yaptım wp_4_options> wp_user_roles (büyük bir json nesnesi veya serileştirilmiş bir dizi, bilmiyorum) içeriğini wp_5_options (bu blog eksik rolleri) adlı yeni bir kayda kopyalamak oldu ve sorunumu çözdü. Oy verildi beni doğru yola koydu çünkü +1 oy verdi
Xananax

Ayrıca wp _ ## _ seçeneklerinden birini geçersiz kılıyor gibi görünüyor, çünkü ana wp_options tablosundan kayıt "wp _ ## _ user_roles" KALDIRILDI.
Paolo

1
Mükemmel cevap!
jnthnclrk

7
Sitenizi taşıyan ve önekleri değiştiren kişiler için, hata "{new_prefix} _ ## _ user_roles" yerine "wp _ ## _ user_roles" olabilir
Xhynk

2

Bu çok iyi bildiğim sorunsa, MU kurulumunuzun arkasında bir memcache kurulumu mu çalıştırıyorsunuz? Görünüşe göre iyi bir şey (wp_user_roles anahtarı gibi) "notoptions" memcache dizisinde takılı kaldığı seçenekler nesnesi için (önbellekte 2.9 tanık) bir önbellek sorunu olduğunu buldum.

Memcache üstünde çalışırsanız ve bu bir olasılık gibi görünüyorsa, 11211 aracılığıyla makineye telnet göndermeyi deneyin. delete blogid:options:notoptionsBurada blogid, sorunu gördüğünüz blogun kimliği olarak yazın. Yönetici panelini yenileyin ve açılır menüde rol olup olmadığına bakın. Eğer öyleyse, sorununuzu buldunuz.

GÜNCELLEME : Tamam, sorununuzu bulamadınız - memcache çalıştırmıyordunuz. Hala bozuk veya var olmayan bir tane arayan, roller nesnesini kontrol ediyorum. En iyi ipucun olduğuna inanıyorum. Seçenekler tablosunu dökmek için bu kodu kullanabilirsiniz:

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/>";
}

Editör. Memcache'nin sunucuma nasıl girdiğini bilmiyorum. Hiç kullanmıyorum. Belki w3 önbellek yüklediğim için. Silmeyi denedim, not_found diyerek bir mesaj verdi. Devam etmedim ve memcache'i kullanmadığım için devre dışı bıraktım. Sorun hala devam ediyor.
Geo

Sorununuza bir çözüm olmadığı için özür dilerim. Ben bu çok koşmak bu yüzden benim en iyi tahmin oldu. Bu blog için rol nesnesine bakmaya devam ederdim. Var mı? Yardımcı olacağını umarak yukarıdaki cevabımı güncelledim.
editör

1

WordPress'i yeniden yükledikten ve Updraft Plus yedeklemesinden geri yükledikten sonra Multisite yüklemesiyle bu sorunu yaşadım.

user_rolesKaydı kontrol ettiğimde, option_name hala orijinal dört karakter önekine ayarlanmıştı pre1_user_roles, ikinci kurulumun öneki isepre2_user_roles .

Bunu güncelledim pre2_user_rolesve seçenekler hemen kullanıcı seçenekleri sayfasında yeniden belirdi.


1

TEŞEKKÜR EDERİM. Bu sorun 10 saatlik sağlam bir hata ayıklamayı temsil eder. Bu benim için gerçek bir ayıydı.

Bunu biraz genişletmek için, programlı olarak siteler oluşturuyorsanız, siteme bu sorunu çözmenize izin verecek bir işlev ekledim.

Temel olarak, bu wp_user_rolesbelirtilen blogda ayarlanıp ayarlanmadığını kontrol eder . Öyleyse, işlev wp_user_rolesyeni bir seçeneği doğru şekilde ayarlamak için kullanır .

  /**
   * 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

Sadece bu yazı için teşekkür etmek istedim çünkü uzun zamandır bu soruna bir çözüm arıyordum.

Sadece benim siteleri klonlamak için bir eklenti kullanmıştı ve wp_##_user_rolesdüzgün düzgün güncellenmedi çünkü oldu . Siteden kopyalandığında site wp_13...yeni bir siteye klonlandı, wp_81...ancak bu giriş hala takılı kaldı wp_13.


0

Sadece bazı kişilerin hala boş bir site kullanıcı tablosu olabileceğini belirtmek istiyorum - özellikle kök siteleri için. Bu sorun oluşursa, sorunu çözmenin yolu aşağıdakileri yapmaktır:

  1. Tabloya git wp_usermeta
  2. Meta_key ile tüm girişleri bulun Wp_capability
  3. Dan meta_key değiştirme wp_capabilities için wp_1_capabilities

"1" in her zaman kök sitenin kimliği olduğuna inanıyorum.

Şerefe.


wp_Önek sinde ayarlanır wp-config.phpve sadece varsayılan wp_. 1Gerçekten de kök sitesidir. Ancak bu 1, otomatik olarak oluşturulan benzersiz ve artan bir kimlik olduğu için olmak zorunda değildir .
kaiser
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.