Сортировка сообщений по дате

У меня проблема с сообщениями сортировки по дате:

Мой код сейчас:

<?php global $switched; $original_blog_id = get_current_blog_id(); // get current blog $blog_ids = array(4,1); foreach( $blog_ids as $blog_id ){ switch_to_blog( $blog_id ); $args = array( 'posts_per_page' => 10, 'orderby' => 'date', 'order' => 'DESC'); $myposts = get_posts( $args ); foreach ( $myposts as $post ): setup_postdata( $post ); ?> <li> <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> </li> <?php endforeach; wp_reset_postdata(); switch_to_blog( $original_blog_id ); //switched back to current blog restore_current_blog(); } ?> 

Моя проблема:

http://images.tinypic.pl/i/00700/vracxlcdm296.png

Я бы хотел:

http://images.tinypic.pl/i/00700/jo2yp8f83bce.png

Я хочу сортировать по дате всех блогов. Не каждый по отдельности.

Вы можете добавить аргумент, как get_posts ниже для метода get_posts

 'orderby' => 'date', 'order' => 'DESC', 

Для получения дополнительной информации, пожалуйста, посетите ссылку https://codex.wordpress.org/Template_Tags/get_posts

Вот как я бы напал на вашу проблему (на самом деле, я думаю, что в прошлом я написал такой код, но на данный момент я не могу его найти):

 $blogs = array( 4, 1 ); $all_posts = array(); foreach( $blogs as $blog ) { switch_to_blog( $blog ); $args = array( 'posts_per_page' => 10, 'orderby' => 'date', 'order' => 'DESC'); $blog_posts = get_posts( $args ); foreach( $blog_posts as $blog_post ) { // Add the correct permalink to the Post object $blog_post->permalink = get_the_permalink( $blog_post->ID ); $all_posts[] = $blog_post; } restore_current_blog(); } usort( $all_posts, '__sort_by_date' ); // Now you can display all your posts foreach( $all_posts as $post ) { setup_postdata( $post ); the_title( '<a href="' . $post->permalink . '">', '</a>' ); } function __sort_by_date( $a, $b ) { $a_date = strtotime( $a->post_date ); $b_date = strtotime( $b->post_date ); if( $a_date === $b_date ) { return 0; } if( $a_date > $b_date ) { return 1; } return -1; } 

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

Рекомендации

  • usort()
  • strtotime()
  • the_title()
  • get_the_permalink()