En tant qu'administrateur réseau dans une configuration multisite, j'ai la possibilité d'activer ou de désactiver l'enregistrement d'utilisateur\enregistrement de site. Est-il possible d'activer l'enregistrement de l'utilisateur sur un seul sous-site, pas sur tous les sites?.
Dans ma configuration WP, j'ai un blog principal qui est géré par moi et je ne veux pas que l'utilisateur s'enregistre ici. J'ai un autre blog installé sur un sous-répertoire dédié au forum. Je souhaite activer l'enregistrement de l'utilisateur ici, afin que cet utilisateur puisse utiliser le forum
La configuration multisite vous permet d'activer et de désactiver l'enregistrement des utilisateurs au niveau du réseau, mais si vous voyez la base de données, elle stocke la valeur dans les tableswp_options
de chaque site.
Donc, nous pouvons essayer le ci-dessous et voir si cela fonctionne.
Utilisez le code ci-dessous dans le fichierfunctions.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;
}
Si la mise à jour est réussie, vous obtiendrez true
sinon false
Vous pouvez maintenant utiliser la fonction pour activer tous les sous-sites de la configuration de la MU en transmettant la sous-site id
à la fonction à la place de $blog_id
.
Le multisite ajoute un filtre pour les appels get_option('users_can_register')
dans ms-functions.php
users_can_register_signup_filter
. Ce filtre contourne les paramètres de niveau blog que vous essayez d'implémenter.
/**
* 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');