web-dev-qa-db-fra.com

Obtenir le Permalien du blog du réseau

J'essaie d'écrire une fonction qui me permettra de spécifier un identifiant de publication et un identifiant de blog, puis de lui renvoyer le permalien et le titre de la publication de blog.

J'ai besoin que cela soit efficace car la fonction sera utilisée dans une boucle foreach pouvant entraîner l'exécution de la fonction plus de 50 fois.

Des idées?

2
Pippin

Cela semble assez simple.

Utilisation: http://codex.wordpress.org/Function_Reference/switch_to_blog

Pour revenir utiliser:

restore_current_blog();

Cela vous permet de passer d'un site à l'autre.

Alors: http://codex.wordpress.org/Function_Reference/get_permalink

Mes hypothèses sont que vous avez à la fois l'ID de blog et l'ID de publication.

Si c'est le cas, l'utilisation de ces deux fonctions devrait résoudre votre problème.

1
Sterling Hamilton

Selon la suggestion ci-dessus, je suis allé pour ceci:

$html = '<ul>';
foreach ( $recent_across_network as $post ) {

    switch_to_blog( $post->blog_id );

    $postURI = get_permalink( $post->ID );          
    $html .= '<li><a href="' . $postURI . '">' . $post->post_title . '</a></li>';

    restore_current_blog();
}
$html .= '</ul>';

$recent_across_network est une liste des publications récentes d'un réseau multisite, mises en cache à l'aide de l'API Transients. Il y a un tutoriel lié ici .

Vous pouvez également faire:

$postURI = get_blog_permalink( $post->blog_id, $post->ID );

au lieu de switch_to_blog()/restore_current_blog() - ne sait pas ce qui est le plus efficace?

0
strangerpixel