web-dev-qa-db-ja.com

ネットワークブログ投稿の固定リンクを取得する

投稿IDとブログIDを指定し、ブログ投稿のパーマリンクとタイトルを返すようにする関数を作成しようとしています。

関数はforeachループ内で使用され、関数が50回以上実行される可能性があるため、これを効率的にする必要があります。

何か案は?

2
Pippin

それはとても簡単に思えます。

使用: http://codex.wordpress.org/Function_Reference/switch_to_blog

戻るには

restore_current_blog();

これにより、サイト間で切り替えることができます。

それから: http://codex.wordpress.org/Function_Reference/get_permalink

私の仮定はあなたがBlog IDとPost IDの両方を持っているということです。

その場合は - これら二つの関数を使用することであなたの問題を解決するはずです。

1

上記の提案に従って、私はこれを行っています。

$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()の代わりに - どちらがより効率的かわからない?

0
strangerpixel