您可能需要为此编写一些自定义SQL。下面是一个示例函数,可以实现这一点。这有点不安全,因为我们不能使用$wpdb->准备将blog\\u id放入(它包含任何插入引号的内容)。
<?php
function wpse33779_get_posts_from_blog( $blog_id = 1 )
{
// is this is the current blog, just get posts...
if( 1 === $blog_id )
{
return get_posts();
}
else
{
// make sure this is a number.
$blog_id = absint( $blog_id );
}
// did absint kill our blog id?
if( ! $blog_id ) return array();
global $wpdb;
$a = $wpdb->prepare( "SELECT * from {$wpdb->base_prefix}{$blog_id}_posts WHERE \'post\' = post_type AND \'publish\' = post_status" );
$posts = $wpdb->get_results( $a );
return $posts;
}
我不擅长编写SQL,但你明白了。您可以将该功能充实到
get_posts
也
您也可以使用switch_to_blog
<?php
switch_to_blog( $blod_id );
$posts = get_posts();
// do stuff with posts
restore_current_blog();
也就是说,
switch_to_blog
这可能不是个好主意。真的很慢。