Domanda

dopo l'importazione di successo del ~ 4000 utenti e dei loro blog e messaggi di Liftype Ho un problema di diritti: tutti gli utenti sono solo abbonati nel proprio blog. Come posso massa modificarlo per blog (non tutto il sito!) I privilegi di amministratore? Tutte le funzioni note che ho trovato nel Codex conferisce diritti di amministratore per il blog principale, che non è quello che voglio.

Grazie Uwe

Modifica: Che cosa c'è che non va qui?

include 'wp-load.php';
global $wpdb;
for ( $blog_id = 393; $blog_id <=4091; $blog_id++ ){

  $bloguser= get_users_of_blog ($blog_id);
    foreach ($bloguser as $usr) { // maybe there is more than one
        $user_id = $usr->ID;
          echo 'Blog No. '.$blog_id.' is property of user: '.$user_id;  //control check
      if ($user_id != '') {
        $user = new WP_User($user_id);
        $user->for_blog($blog_id);
        $user->remove_role('editor');
        $user->add_role('administrator');
      }
    }
}
echo 'Done!';

Il codice è ben funzionante, ma non v'è alcun cambiamento per il ruolo dell'utente.

Modifica: codice errore di battitura a cura, nessun cambiamento ai risultati

@EAMann Sei sicuro, add_role è la funzione giusta? Capisco che questo è per l'aggiunta di un nuovo ruolo al sistema di WP.

Modifica: Aggiornato nuovamente il codice. Utilizzando update_user_meta. $ Controllo restituisce 'amministratore' (a destra!), Ma se chiamo le proprietà del blog dell'utente, l'utente è sempre 'editore'.

È stato utile?

Soluzione

Dalla tua domanda, sto assumendo questi sono gli utenti di un blog specifico all'interno di un'installazione MultiSite, giusto? In tal caso, procedere come segue:

  1. Vai al blog per il quale si vuole fare in questi amministratori degli utenti.
  2. Fare clic sul pulsante "Utenti" nella barra laterale di amministrazione lato sinistro
    • Questo vi presenterà con un display di circa 20 utenti alla volta (il display è paging)
  3. Fare clic sulla casella di controllo accanto agli utenti che si desidera promuovere
  4. In cima alla lista è una casella a discesa che dice "Modifica ruolo da ..." - Selezionare "Amministratore" da questa casella di selezione
  5. Fare clic sul pulsante "Modifica" a destra della casella di selezione

Dovrete fare questo per ogni pagina degli utenti, e con 4000 utenti avrete circa 160 pagine di risultati. Ma è fattibile.


Aggiorna

Se volete qualche codice specifico, vi consiglio di guardare il WP_User classe. Questa classe definisce due metodi che avresti bisogno di utilizzare in modo iterativo:. for_blog() e add_role()

In sostanza, avrete bisogno di un ciclo tra i tuoi utenti in base sia su loro ID o nomi utente. Considerate questo non testati esempio di codice:

$ids = [1,2,3,4];
foreach($ids as $id) {
    $user = new WP_User($id);
    $user->for_blog( ... user's blog id ... );
    $user->remove_role('subscriber');
    $user->add_role('administrator');
}

Per impostazione predefinita, il metodo add_role() della classe WP_User agirà sul blog corrente ... si utilizza for_blog() di passare a un blog specifico prima di eseguire il metodo add_role().

Quindi, se avete gli ID dei vostri utenti e gli ID dei blog che si suppone di essere amministratori per, è possibile scorrere di loro abbastanza facilmente e configurarli come amministratori per i loro siti specifici.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a wordpress.stackexchange
scroll top