Als Netzwerkadministrator in einer Konfiguration mit mehreren Standorten kann ich die Benutzerregistrierung\Standortregistrierung aktivieren oder deaktivieren. Gibt es eine Möglichkeit, die Benutzerregistrierung auf einer einzelnen untergeordneten Site zu aktivieren, nicht auf allen Sites?.
In meinem WP Setup habe ich ein Hauptblog, das von mir verwaltet wird und ich möchte nicht, dass sich Benutzer hier registrieren. Ich habe ein anderes Blog auf Unterverzeichnis für Forum installiert. Ich möchte hier die Benutzerregistrierung aktivieren, damit der Benutzer das Forum nutzen kann
Mit dem Multisite-Setup können Sie die Benutzerregistrierung auf Netzwerkebene aktivieren und deaktivieren. Wenn jedoch die Datenbank angezeigt wird, wird der Wert in denwp_options
-Tabellen für jeden Standort gespeichert.
Also können wir das unten versuchen und sehen, ob dies funktioniert.
Verwenden Sie den folgenden Code in der Dateifunctions.php
.
function wpse_enable_user_registration( $blog_id = 1 ) {
switch_to_blog( $blog_id );
// Fetching the present option
$user_registration_option = get_option( 'users_can_register', 0 );
if( '0' == $user_registration_option )
$site_registration_option = update_option( 'users_can_register', 1 );
restore_current_blog(); // Switches back to the original blog
return $site_registration_option;
}
Wenn die Aktualisierung erfolgreich ist, erhalten Sie true
sonst false
Jetzt können Sie die Funktion verwenden, um Unterwebsites im MU-Setup zu aktivieren, indem Sie die Unterwebsites id
an die Funktion anstelle von $blog_id
übergeben.
Multisite fügt einen Filter für get_option('users_can_register')
Aufrufe in ms-functions.php
users_can_register_signup_filter
hinzu. Dieser Filter umgeht alle Einstellungen auf Blogebene, die Sie implementieren möchten.
/**
* Check whether users can self-register, based on Network settings.
*
* @since MU
*
* @return bool
*/
function users_can_register_signup_filter() {
$registration = get_site_option('registration');
if ( $registration == 'all' || $registration == 'user' )
return true;
return false;
}
add_filter('option_users_can_register', 'users_can_register_signup_filter');