Ich möchte, dass neue Benutzer des Blogs eine benutzerdefinierte Rolle haben und nicht Abonnent. Wie stelle ich das programmgesteuert ein? Ich weiß, dass es vom Backend aus geändert werden kann.
quelle
Ich möchte, dass neue Benutzer des Blogs eine benutzerdefinierte Rolle haben und nicht Abonnent. Wie stelle ich das programmgesteuert ein? Ich weiß, dass es vom Backend aus geändert werden kann.
Auf diese Weise können Plugins die Standardrolle problemlos entführen, während sie aktiv sind.
// Hijack the option, the role will follow!
add_filter('pre_option_default_role', function($default_role){
// You can also add conditional tags here and return whatever
return 'subscriber'; // This is changed
return $default_role; // This allows default
});
Ich benutze es, um sicherzustellen, dass einige Plugins, die Abonnentenrollen benötigen, es erhalten, unabhängig davon, ob der Administrator versucht, es zu ändern :)
Grüße .
Wenn ein neuer Benutzer über die wp_insert_user()
Funktion erstellt wird, wird die Rolle mit der set_role()
Methode der User
Klasse festgelegt und auf die Standardbenutzerrolle festgelegt.
Die Standardbenutzerrolle wird aus der Datenbank abgerufen get_option('default_role')
und kann über das Admin-Dashboard unter Einstellungen> Allgemein> Neue Benutzerstandardrolle festgelegt werden.
Wenn Sie Ihre neue Rolle registriert haben (mithilfe von add_role()
, sollte sie dort zur Auswahl stehen.
Alternativ können Sie für mehr Kontrolle die Aktionen user_register
oder profile_update
einbinden, set_role
um sie dann bedingt zu aktivieren, oder wie Sie möchten.
Nachdem Sie den Benutzer mit erstellt haben
Erstellen Sie das Benutzerobjekt
Stellen Sie dann die Rolle ein
Sie können die Rolle "Editor" durch eine der folgenden Funktionen ersetzen:
Administrator
Editor
Autor
Mitwirkender
Teilnehmer
quelle
Fügen Sie es in die Pluging- oder functions.php-Datei Ihres Themas ein
quelle