投稿IDとブログIDを指定し、ブログ投稿のパーマリンクとタイトルを返すようにする関数を作成しようとしています。
関数はforeachループ内で使用され、関数が50回以上実行される可能性があるため、これを効率的にする必要があります。
何か案は?
それはとても簡単に思えます。
使用: http://codex.wordpress.org/Function_Reference/switch_to_blog
戻るには
restore_current_blog();
これにより、サイト間で切り替えることができます。
それから: http://codex.wordpress.org/Function_Reference/get_permalink
私の仮定はあなたがBlog IDとPost IDの両方を持っているということです。
その場合は - これら二つの関数を使用することであなたの問題を解決するはずです。
上記の提案に従って、私はこれを行っています。
$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
は、マルチサイトネットワークからの最近の投稿のリストで、Transients APIを使用してキャッシュされています。ここに 関連のチュートリアルがあります 。
あなたも同様にすることができます:
$postURI = get_blog_permalink( $post->blog_id, $post->ID );
switch_to_blog()
/restore_current_blog()
の代わりに - どちらがより効率的かわからない?