因此,我有一个主站点,发布关于子站点的公告,对于每个帖子,我都有一个元值,用户可以设置这些公告也适用于哪个站点。在每一个子网站上,我都想将该网站的公告包含在常规的帖子循环中。
到目前为止,我只能单独显示它们
$latest_posts = get_posts( array(
\'numberposts\' => 5
) );
switch_to_blog(\'1\');
$networkPosts = get_posts( array(
\'posts_per_page\' => 5,
\'date_query\' => array(
\'after\' => date(\'Y-m-d\', strtotime(\'-1130 days\'))
),
\'meta_query\' => array(
array(
\'key\' => \'shows\',
\'value\' => $id,
\'compare\' => \'LIKE\',
)
)
));
尝试使用Pre\\u Get\\u Posts将networkPosts查询与常规查询合并,但结果很糟糕。
function add_network_to_query( $query ) {
if ( $query->is_home() && $query->is_main_query() ) {
$id = get_current_blog_id();
switch_to_blog(\'1\');
$networkPosts = get_posts( array(
\'posts_per_page\' => 0,
\'date_query\' => array(
\'after\' => date(\'Y-m-d\', strtotime(\'-1130 days\'))
),
\'meta_query\' => array(
array(
\'key\' => \'shows\',
\'value\' => $id,
\'compare\' => \'LIKE\',
)
)
));
restore_current_blog();
$query = array_merge($query, $networkPosts );
}
}
add_action( \'pre_get_posts\', \'add_network_to_query\' );
TLDR;我想将站点1中具有特定元值的帖子包含到每个子站点的查询中。
SO网友:Misha Rudrastyh
如果您想像处理WP\\u查询一样使用它,可以使用这种构造。
$query = new Network_Query( array(
\'blog_id\' => array( 1, get_current_blog_id() ),
\'posts_per_page\' => 5,
\'date_query\' => array(
\'after\' => date(\'Y-m-d\', strtotime(\'-1130 days\'))
),
\'meta_query\' => array(
array(
\'key\' => \'shows\',
\'value\' => $id,
\'compare\' => \'LIKE\',
)
)
) );
if( $query->have_posts() ) :
while( $query->have_posts() ) : $query->the_post();
endwhile;
endif;
因此,我们将当前博客和具有ID1的博客合并到一个循环中。
要使Network\\u查询在您的网站上工作,需要其他插件https://rudrastyh.com/plugins/get-posts-from-all-blogs-in-multisite-network
希望有帮助。