Dans WordPress multisite (network) – version 4.2.2 – avec la fonction dans le site n°3
switch_to_blog( 2 );
a-t-on vraiment basculé vers l’autre site n°2 pour lancer une requête (new WP_Query ( $query ) ;) incluant une nouvelle taxonomie (ici ‘domain’) ?
// extrait
'tax_query' => array(
'relation' => 'AND',
array(
'field' => 'term_id',
'taxonomy' => 'category',
'terms' => array ('publication', 'evenement'),
'operator' => 'IN'
),
array(
'field' => 'slug',
'taxonomy' => 'domain',
'terms' => array( 'aerien', 'sous-marin'),
'operator' => 'IN'
)
)
en fait, non, car la construction de $query a besoin de la déclaration de la taxonomie dans le site n°3 où est le code.
Comment s’en sortir ?
Il ne faut pas activer ‘en réseau’ l’extension qui déclare cette nouvelle taxonomie mais site par site et dans l’extension (qui crée la taxonomie) il faut prévoir de masquer celle-ci dans les sites où elle n’est pas utile
'show_ui' => ($current_blog->blog_id == 2 ) ? true :false,
En procédant de la sorte, on corrige les carences de switch_to_blog( 2 ); et il est donc possible sur le site n°3 d’afficher des listes résultant de requêtes complexes sur les données du site n°2.