从多站点网络查询帖子

时间:2012-11-28 作者:vishal

我在一个多站点博客网络上工作,我必须在主页上显示最近的帖子,每页导航10篇。

我确实使用wpdb对象和一条复杂的sql语句实现了它。

我得到了我们的博客IDget_blog_list 函数循环遍历每个博客id列表,并生成一个sql查询,以从使用的所有站点获取帖子wpdb->get_result 为了从所有子网站获取帖子列表,我最近开始学习PHP和WordPress,现在还在学习。

是使用wpdb 在这种情况下,对象是正确的方式吗?我在许多文章中读到WP_Query 对象我不知道怎么用WP_Query 在这种情况下的对象?

帮助我以正确/更好的方式实现这一点。

1 个回复
SO网友:realloc

你可以这样使用你的博客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_blogrestore_current_blog. 代码的其余部分只是为了说明这个想法。

结束

相关推荐

我可以使用PRE_GET_POSTS函数通过元键排除POST吗?

我看到很多人更喜欢使用pre_get_posts 钩子代替query_posts. 下面的代码可以工作并显示所有具有元键“特色”的帖子function show_featured_posts ( $query ) { if ( $query->is_main_query() ) { $query->set( \'meta_key\', \'featured\' ); $query->set( \'meta_value\', \'