Сортировка записей по дате – get_blogs_of_user_id ()

Я новичок, которому необходимо создать хронологический список последних сообщений со всех сайтов, на которые пользователь подписался на многоузловую сеть WordPress.

Используя приведенный ниже код, я могу создать список, в котором должности упорядочены хронологически (DESC), но сгруппированы по сайту:

  1. Сайт в среду
  2. Сайт Вторник
  3. Сайт в понедельник
  4. Сайт B Среда
  5. Сайт B вторник
  6. Сайт В понедельник

Мне нужно создать список, в котором все записи упорядочены в хронологическом порядке:

  1. Сайт в среду
  2. Сайт B Среда
  3. Сайт Вторник
  4. Сайт B вторник
  5. Сайт в понедельник
  6. Сайт В понедельник

    $user = get_current_user_id(); $blogs = get_blogs_of_user( $user ); if( $blogs ) { foreach( $blogs as $blog ) { switch_to_blog( $blog->userblog_id ); $query = new WP_Query ('posts_per_page=2'); if ($query->have_posts()) : while ($query->have_posts()) : $query->the_post(); <li> <a href="<?php echo $string; ?>$ </li> <?php endwhile; $ restore_current_blog(); } } ?> 

    ?>

Когда я попытался применить «order by» к WP_Query, используя (новый WP_Query (массив ('order by' => 'date'), я создаю первый список выше (список упорядочен хронологически, сгруппированный по сайту). У меня такое ощущение, что я должен отправлять вывод WP_Query в массив, сортировать массив, а затем печатать его на странице, но поскольку я чрезвычайно новичок во всем этом, я мог бы действительно использовать некоторые рекомендации в этот момент.

Вы можете создать массив всех элементов сообщения, а затем отсортировать их по дате в конце вашего запроса:

 $blogs = get_blogs_of_user( get_current_user_id() ); if ( $blogs ) { $items = array(); foreach ( $blogs as $blog ) { switch_to_blog( $blog->userblog_id ); $posts = get_posts( 'posts_per_page=2' ); foreach ( $posts as $post ) { // Use the timestamp to sort all posts by later. $timestamp = strtotime( $post->post_date_gmt ); // Just in case another published at *exactly* same time. while ( isset( $items[ $timestamp ] ) ) $timestamp++; // Add our HTML for this post to the stack. // You can't store the post object and work on it later as we'll be outside the scope of this particular blog. $items[ $timestamp ] = sprintf( '<li><a href="%s">%s</a></li>', get_permalink( $post->ID ), get_the_title( $post->ID ) ); } } restore_current_blog(); if ( $items ) { // Sort by latest to oldest. krsort( $items ); // Display! echo '<ul>'; echo implode( "\n", $items ); echo '</ul>'; } }