2010-05-12 3 views
0

Dans Wordpress MU, comment puis-je permettre aux utilisateurs de s'inscrire à de nouveaux blogs avec leur compte existant? À l'heure actuelle, il semble que l'administrateur du site doit les ajouter manuellement à la page d'administration. Ce serait bien pour moi, sauf que l'administrateur de l'ensemble du site devra ajouter manuellement les utilisateurs aux blogs un par un. Avec des centaines de blogs et des centaines d'utilisateurs, cela pourrait devenir un travail à temps plein en soi.Dans Wordpress MU, comment permettre aux utilisateurs de s'inscrire à de nouveaux blogs avec leur compte existant?

Ou mieux encore, comment puis-je faire enregistrer automatiquement les utilisateurs existants sous un rôle défini pour tous les blogs nouvellement créés sous ce site? Ce serait le Saint Graal de la fonctionnalité de mon site Web. Merci.

Répondre

0

J'ai fait mon propre plugin pour ce faire. Il ne peut pas être le plus élégant possible le code, mais il fait ce que je dois:

function set_user_role($blog_id,$user_id) 
{ 
    $users = get_users(); 
    // register each user to the new website. 
    foreach($users as $user=>$userid) 
    { 
     if($user_id == 1) 
     { 
      add_user_to_blog($blog_id, $userid, "administrator"); 
     } 
     //auto register a new user for all previous blogs.But will this create duplicates for existing users? Nope. It doesn't! 
     else if($user_id == $userid) 
     { 
      //add_user_to_blog($blogid, $user_id, "administrator"); 
      $blogs = get_blogs(); 
      foreach($blogs as $blog=>$blogid) 
      { 
       //if this is the blog the user just created, then let them be an admin. 
       if($blogid == $blog_id) 
        add_user_to_blog($blogid, $user_id, "administrator"); 
       else 
        add_user_to_blog($blogid, $user_id, "subscriber"); 
      } 
     } 
     else 
      add_user_to_blog($blog_id, $userid, "subscriber");//if user is not an admin and not a new user, then just make them a subscriber. 
    } 
} 

function get_users() 
{ 
    global $wpdb; 
    $userids = $wpdb->get_col($wpdb->prepare("SELECT $wpdb->users.ID FROM $wpdb->users ORDER BY %s ASC", $szSort)); 
    return $userids; 
} 

function get_blogs() 
{ 
    global $wpdb; 
    $blogids = $wpdb->get_col($wpdb->prepare("SELECT blog_id FROM $wpdb->blogs WHERE site_id = %d AND archived = '0' AND spam = '0' AND deleted = '0' ORDER BY path", $wpdb->siteid)); 
    return $blogids; 
} 

//When a new blog is created, auto-register all unblocked users for it. 
add_action('wpmu_new_blog','set_user_role', 100, 2); 
0

Ou si elles sont des utilisateurs exsiting, il suffit de les renvoyer à yourdomain.com/wp-signup.php. C'est là où ils peuvent créer leur propre nouveau blog par défaut.

Questions connexes