Querying post de uma rede multisite

4

Estou trabalhando em uma rede de blogs com vários sites, na qual tenho que exibir uma postagem recente em minha página inicial, 10 páginas por navegação de páginas.

Eu o implementei usando o objeto wpdb com uma instrução sql complexa.

  • Eu recebi os IDs do blog get_blog_list function
  • em loop através de cada lista de ID do blog e gerou uma consulta SQL única para obter postagem de todos os sites
  • Usado wpdb->get_result para obter uma lista de postagens de todos os subsites

Comecei recentemente a trabalhar com PHP e WordPress e ainda estou aprendendo.

O uso de wpdb object é o caminho certo nessa situação? Eu li em muitos artigos que usa WP_Query object. Eu não sei como usar o objeto WP_Query nessa situação?

Ajude-me a implementar isso da maneira certa / melhor.

    
por vishal 28.11.2012 / 21:48

1 resposta

4

Você pode usar sua lista de IDs de blog dessa maneira ...

$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();
}

Importante switch_to_blog e restore_current_blog . O resto do código está ali apenas para ilustrar a ideia.

    
por realloc 29.11.2012 / 14:03