web-dev-qa-db-ja.com

マルチサイトネットワークからの投稿の問い合わせ

私は私のホームページに最近の投稿を表示しなければならないマルチサイトブログネットワークに取り組んでいます。1ページあたり10の投稿ナビゲーション。

私は1つの複雑なSQLステートメントでwpdbオブジェクトを使ってそれを実装しました。

  • ブログIDを取得しましたget_blog_list関数
  • 各ブログIDリストをループ処理し、すべてのサイトから投稿するための単一のSQLクエリを生成しました
  • すべてのサブサイトから投稿のリストを取得するためにwpdb->get_resultを使用しました

私は最近PHPとWordPressに取り組み始めましたが、まだそれを学んでいます。

この状況でwpdbオブジェクトの使用は正しい方法ですか?私はWP_Queryオブジェクトを使用する多くの記事を読みました。この状況でWP_Queryオブジェクトを使用する方法がわかりませんか?

これを正しい方法で実装するのを手伝ってください。

4
vishal

このようにブログIDのリストを使うことができます...

$posts = array();
foreach ( $your_list_of_blog_ids as $blog_id ) {
    switch_to_blog( $blog_id );
    $query = new WP_Query(
        array(
            'post_type' => 'any',
            'posts_per_page' => 10,
        )
    );
    while ( $query->have_posts() ) {
        $query->next_post();
        $posts[] = $query->post;
    }
    restore_current_blog();
}

重要なのは switch_to_blog および restore_current_blog です。コードの残りの部分は、アイデアを説明するためのものです。

4
realloc