Показать все сообщения на двадцать девятом мультисайте

Я использую по умолчанию двадцать тринадцать на сайте wordpress 4.0. Сейчас у меня есть один сайт в сети. Я могу добавить один или два в следующем году или около того. Оба блогов используют двадцатьнадцать. Прямо сейчас «главный» блог только отключает свои собственные сообщения. Я хочу, чтобы он включал дочерний блог. Есть ли хороший способ сделать это? Не имеет значения, если я должен выполнить ручную манипуляцию в коде, когда я добавляю блог в сеть, так как я не буду делать это часто.

Изменить: я хочу, чтобы сообщения отображались в основной области содержимого, например, в сообщениях из основного блога. В том же стиле по умолчанию, что и двадцать тринадцать.

Изменить 2: Разъяснение. В двадцать девятой теме есть «The Loop» в index.php.

<?php while ( have_posts() ) : the_post(); ?> <?php get_template_part( 'content', get_post_format() ); ?> <?php endwhile; ?> 

Если бы я мог получить, что в то время, когда цикл тоже забирает дочерние блоги, я получаю именно то, что мне нужно. Я знаю, что это приведет к большему количеству последствий, которые необходимо решить (например, подкачки), но это по сути то, что мне нужно.

Solutions Collecting From Web of "Показать все сообщения на двадцать девятом мультисайте"

Если вы ищете «легкую», то самым простым способом, вероятно, является использование RSS-виджета для этого. Получите два виджета, по одному для каждого блога, и все готово. Когда у вас есть третий блог, просто добавьте еще один виджет.

Вы не можете просто перебирать все последние сообщения в своей сетевой установке. Каждый сайт в сети настроен так, что API и большинство пользовательских интерфейсов идут как полноценный автономный сайт wordpress. Это и сила, и слабость системы, но это означает, что делать что-либо, что смешивает контент с разных сайтов, не является тривиальным.

Ключом является функция switch_to_blog и restore_current_blog, которые позволяют использовать WordPress API в контексте разных блогов

Поскольку вы хотите, чтобы ваши сообщения отображались в хронологическом порядке, вам сначала нужно создать список всех последних сообщений на всем сайте, что-то вроде

 $blogs_to_fetch = array( the blog ids of the blogs); $posts = array(); // first we collect data foreach ($blogs_to_fetch as $blogid) { switch_to_blog($blogid); $ps = get_posts(parameters to get N latest posts); foreach $ps as $p) { $posts[] = array('blogid' => $blogid, 'post' => $post); } restore_current_blog(); // not realy needed, but nicer to the eye } $posts = sort_posts($posts); // your own function that sorts the posts by time or by any other creiteria // now we display foreach ($posts as $p) { switch_to_blog($p['blogid']); setup_postdata( $p ); get_template_part( 'content', get_post_format() ); restore_current_blog(); } // cleanup wp_reset_postdata();