在子网站的查询中包括网站1帖子

时间:2018-08-20 作者:Picard102

因此,我有一个主站点,发布关于子站点的公告,对于每个帖子,我都有一个元值,用户可以设置这些公告也适用于哪个站点。在每一个子网站上,我都想将该网站的公告包含在常规的帖子循环中。

到目前为止,我只能单独显示它们

$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中具有特定元值的帖子包含到每个子站点的查询中。

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

希望有帮助。

结束

相关推荐

使用MultiSite,我如何让网络上的两个不同的站点拥有不同的活跃主题?

我在使多站点按预期工作时遇到一些问题。我学习了一些教程,并一步一步地完成了所有的工作。多站点已启用,我可以访问站点网络,但当我更改一个站点仪表板上的主题时,我的所有站点的主题都会更改。我使用子目录,所以mydomain.com 和mydomain.com/site1 等。我注意到当我去仪表板mydomain.com/site1, 我只是想mydomain.com/wp-admin/. 我不知道这是否是预期的行为,但我认为可能是mydomain.com/site1/wp-admin/. 路由似乎工作不正常。