Объедините результаты двух циклов

В настоящее время у меня эти две петли работают на одной странице

$related = p2p_type( 'artist_to_song' )->my_get_related( get_queried_object() ); $features = p2p_type( 'song_to_feature' )->my_get_related( get_queried_object() ); if ( $related->have_posts() ) : while ( $related->have_posts() ) : $related->the_post(); //content endwhile; wp_reset_postdata(); endif; if ( $features->have_posts() ) : while ( $features->have_posts() ) : $features->the_post(); //content endwhile; wp_reset_postdata(); endif; 

Можно ли объединить результаты этих циклов в одну так, чтобы все должности были перечислены в хронологическом порядке, а не в результате $related за ними $features .

Solutions Collecting From Web of "Объедините результаты двух циклов"

Да. Сначала вы должны объединить результаты в один массив:

 $all_posts = array_merge( $related->posts, $features->posts ); 

Теперь давайте отсортировать элементы массива по дате:

 usort( $all_posts, function( $a, $b ) { return strcmp( $b->post_date, $a->post_date ); } ); 

Наконец, выполните цикл:

 global $post; foreach ( $all_posts as $post ) { setup_postdata( $post ); // use the template tags here: the_title(), the_content(),… } wp_reset_postdata();