webentwicklung-frage-antwort-db.com.de

Benutzerregistrierung vor Ort in Multisite-Konfiguration

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

2
acr

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.

1
Maruti Mohanty

Multisite fügt einen Filter für get_option('users_can_register') Aufrufe in ms-functions.phpusers_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');
1
user54414