web-dev-qa-db-fra.com

Comment WordPress détermine-t-il le multisite sur lequel l'utilisateur se trouve à partir de l'URL?

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?

1
Nick

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

1
Tyler Carter