Saya kira ini berat, tetapi untuk menjawab pertanyaan awal Anda, saya telah mengumpulkan semua posting id dalam array di loop pertama, dan mengecualikan posting tersebut dari loop kedua menggunakan 'post__not_in' yang mengharapkan array dari postingan id
<?php
$args1 = array('category_name' => 'test-cat-1', 'order' => 'ASC');
$q1 = new WP_query($args);
if($q1->have_posts()) :
$firstPosts = array();
while($q1->have_posts()) : $q1->the_post();
$firstPosts[] = $post->ID; // add post id to array
echo '<div class="item">';
echo "<h2>" . get_the_title() . "</h2>";
echo "</div>";
endwhile;
endif;
/****************************************************************************/
// array of post id's collected in first loop, can now be used as value for the 'post__not_in' parameter in second loops query $args
$args2 = array('post__not_in' => $firstPosts, 'order' => 'ASC' );
$q2 = new WP_query($args2);
if($q2->have_posts()) :
while($q2->have_posts()) : $q2->the_post();
echo '<div class="item">';
echo "<h2>" . get_the_title() . "</h2>";
echo "</div>";
endwhile;
endif;
?>
Loop pertama menampilkan semua posting dalam suatu kategori, dan mengumpulkan id posting ke dalam sebuah array.
Loop kedua menampilkan semua posting, tidak termasuk posting dari loop pertama.