web-dev-qa-db-fra.com

Modifier la page de connexion pour un sous-site multisite

Sur une installation multisite, j'ai utilisé le plug-in Plus de confidentialité pour limiter l'accès à un sous-site particulier www.example.com/privatesite. Les autres sous-sites ne sont pas privés. Cela fonctionne correctement.

J'ai créé une page de connexion personnalisée à l'aide des informations https://codex.wordpress.org/Customizing_the_Login_Form . Tous les sous-sites utilisent le même thème. Le code de la page de connexion personnalisée se trouve donc dans le fichier functions.php de ce thème enfant.

Quel est le meilleur moyen de personnaliser davantage mon formulaire de connexion personnalisé afin que http://www.example.com/privatesite ait une page de connexion différente de http://www.example.com/publicsite, même si tous les sous-sites utilisent le même thème?

J'imagine que j'aurai besoin d'une logique qui "détectera" le sous-site auquel on accède.

Merci.

Ajouté: le code final utilisé en fonction de la réponse approuvée

J'ai pris la réponse cochée de @hwl et utilisé cette fonction pour obtenir le nom du blog afin qu'il puisse être affiché sur l'écran de connexion personnalisé:

function get_the_blog_name() {
    $blog_id = get_current_blog_id();
    $blog_info = get_blog_details($blog_id);
    $blogname = $blog_info->blogname;
    return $blogname;
}

Merci pour l'aide!

1
Rick Hellewell

Vous pouvez obtenir l'ID de blog actuel (qui serait le site dans un réseau , votre sous-site ) avec get_current_blog_id() et vous pouvez obtenir des détails sur un site particulier avec get_blog_details()

de codex: get_blog_details(), passé un identifiant de 1, peut renvoyer l'objet suivant:

   [blog_id]      => 1
   [site_id]      => 1
   [domain]       => foo-multi-site.com
   [path]         => /site-path/
   [registered]   => 2014-07-31 14:51:09
   [last_updated] => 2014-07-31 15:51:56
   [public]       => 1
   [archived]     => 0
   [mature]       => 0
   [spam]         => 0
   [deleted]      => 0
   [lang_id]      => 0
   [blogname]     => Site Name
   [siteurl]      => http://foo-multi-site.com/this-site
   [post_count]   => 

Si vous ne transmettez pas d'identifiant à get_blog_details(), il appelle get_current_blog_id() et utilise cette valeur.

Alors peut-être un conditionnel comme celui-ci:

$current_blog = get_blog_details();
if ( $current_blog->path === '/privatesite/' ) {
    //display log in or call template for private site
}
else {
    //do what you need for default log in
}
1
hwl