Question

Dans mon blog racine (1), j'ai un type de publication personnalisé qui peut être lié à un blog existant de mon réseau. Il le fait en enregistrant dans Post Metas l'identifiant du blog auquel il est lié. j'utilise _blog_id comme nom pour ces données.

Dans une page de ce blog racine, je répertorie ces articles personnalisés, et je retrette facilement la méta que j'ai enregistrée:

<?php while ( have_posts() ) : the_post();
$blog_id = get_post_meta(get_the_id(), '_blog_id', true);

Maintenant, j'ai l'identifiant du blog dont je veux des informations, donc j'essaie ce qui suit:

switch_to_blog($blog_id);
$blog_url = get_bloginfo('url');
restore_current_blog();

Malheureusement, cela ne fonctionne pas parce que $blog_url a l'URL du blog racine.

Pire: switch_to_blog() fonctionne mais pas restore_current_blog(), parce que les appels ultérieurs aux fonctions de boucle fonctionnent désormais dans le sous-blog. Par exemple, lorsque vous appelez the_post_thumbnails(), la source d'image est référée par "/ uploads / sites / 2/2014 ..." pendant que je suis dans le site racine.

Comme vous pouvez le deviner, j'ai deux questions:

  1. Comment retreive les informations sur le blog d'un autre blog du réseau, à partir du modèle d'un blog?
  2. Pourquoi switch_to_blog(), suivie par restore_current_blog() Fait les fonctions de boucle pour se comporter de manière incorrecte?

Merci tout le monde! Passe un bon weekend!

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à wordpress.stackexchange
scroll top