Получить постоянную ссылку на сообщение в сетевом блоге

Я пытаюсь написать функцию, которая позволит мне указать идентификатор сообщения и идентификатор блога, а затем вернуть ему постоянную ссылку и заголовок сообщения в блоге.

Мне нужно, чтобы это было эффективно, потому что функция будет использоваться в цикле foreach, что может привести к тому, что функция будет работать более 50 раз.

Есть идеи?

Solutions Collecting From Web of "Получить постоянную ссылку на сообщение в сетевом блоге"

Это звучит довольно просто.

Использовать: http://codex.wordpress.org/Function_Reference/switch_to_blog

Чтобы вернуться к использованию:

restore_current_blog(); 

Это позволяет переключаться с сайта на сайт.

Затем: http://codex.wordpress.org/Function_Reference/get_permalink

Мои предположения состоят в том, что у вас есть как идентификатор блога, так и идентификатор сообщения.

Если это так – использование этих двух функций должно решить вашу проблему.

Согласно вышеизложенному предложению, я пошел на это:

 $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 – это список последних сообщений из многосайтовой сети, кэшированных с использованием API Transients. Здесь есть связанный учебник .

Вы также можете:

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

вместо switch_to_blog() / restore_current_blog() – не уверен, что более эффективно?