Quels sont le fichier et la ligne où WordPress détermine le multi-site sur lequel l'utilisateur se trouve à partir de l'URL?
J'ai parcouru le code tout l'après-midi et je ne sais pas où il transforme mysite.com/blogbase/myblog
en 2
(l'ID). Il y a une fonction get_id_from_blogname()
, mais elle ne semble pas être appelée au chargement?
Il a fallu un peu de temps pour passer au travers, mais c’est là que nous nous retrouvons.
À la ligne 85 de wp-settings.php
, il vérifie si la constante MULTISITE
a été définie. Si tel est le cas, il charge les fichiers multisites qui gèrent des choses telles que déterminer le blog sur lequel vous êtes.
Un de ces fichiers est /wp-includes/ms-settings.php
. Je crois qu'il décide sur quel blog vous êtes à la ligne 50.
$current_site->blog_id = $wpdb->get_var( .... 'SELECT blog_id FROM ... WHERE path = ...' );
$current_site
est une classe globale std qui est renvoyée par wpmu_current_site()
. Dans ms-settings.php
, il est écrasé s'il n'a pas déjà été forcé via les paramètres de configuration.
Consultez également /wp-includes/ms-load.php
pour plus d'informations sur wpmu_current_site