Edit WordPress loop, taxonomies, & filter

Your code makes it hard for anyone to help you. It is important to properly edit your code in your question. You really don’t have to use the amount of echo‘s you are using. It is just poor formatting and poor use of proper tags. You can clean up your code by just properly opening and closing php tags. Here is how your code should look like. BTW, your link is useless to us as your site is only viewable to registered users.

First set of code

?>
  <div class="staffwrapper">
    <?php
        $args = array( 'post_type' => 'cripps_staff', 'posts_per_page' => 300 );
        $loop = new WP_Query( $args );
        while ( $loop->have_posts() ) : $loop->the_post();
    ?>

    <div class="col-md-3 spacetop">
        <a href="https://wordpress.stackexchange.com/questions/143023/<?php get_permalink(); ?>"><img src="<?php echo get_post_meta($post->ID,'image',true); ?>"></a>

        <h2 class="staffname">
            <?php echo get_post_meta($post->ID,'staff_name',true); ?>
        </h2>

        <h2 class="staffrole">
            <?php echo get_post_meta($post->ID,'staff_role',true); ?>
        </h2>

        <h2 class="staffnumber">
            <?php echo get_post_meta($post->ID,'staff_telephone_number',true); ?>
        </h2>

        <h2 class="staffemail">
            <?php echo get_post_meta($post->ID,'staff_email_address',true); ?>
        </h2>

    </div>
    <?php endwhile; ?>
    </div><!--End of staff wrapper-->
<?php

Second set of code

<?php
 $args = array( 'post_type' => 'cripps_staff', 'posts_per_page' => 300 );
    $loop = new WP_Query( $args );
    while ( $loop->have_posts() ) : $loop->the_post();
?>  

    <div class="col-md-3 spacetop">
        <a href="https://wordpress.stackexchange.com/questions/143023/<?php get_permalink(); ?>"><img src="<?php echo get_post_meta($post->ID,'image',true); ?>"></a>

        <h2 class="staffname">
            <?php echo get_post_meta($post->ID,'staff_name',true); ?>
        </h2>

        <h2 class="staffrole">
            <?php echo get_post_meta($post->ID,'staff_role',true); ?>
        </h2>

        <h2 class="staffnumber">
            <?php echo get_post_meta($post->ID,'staff_telephone_number',true); ?>
        </h2>

        <h2 class="staffemail">
            <?php echo get_post_meta($post->ID,'staff_email_address',true); ?>
        </h2>

    </div>
    <?php endwhile;

        // 2nd loop
        wp_reset_postdata();
        /* The 2nd Query (without global var) */
        $query2 = new WP_Query( $args2 );
        // The 2nd Loop
        while( $query2->have_posts() ) {
        $query2->next_post();

    ?>

    <div class="col-md-3 spacetop">

        <a href="<?php get_permalink();?>"><img src="<?php echo get_post_meta($post->ID,'image',true); ?>"></a>
        <h2 class="staffname">
            <?php echo get_post_meta($post->ID,'staff_name',true); ?>
        </h2>

        <h2 class="staffrole">
            <?php echo get_post_meta($post->ID,'staff_role',true); ?>
        </h2>

        <h2 class="staffnumber">
            <?php echo get_post_meta($post->ID,'staff_telephone_number',true); ?>
        </h2>

        <h2 class="staffemail">
            <?php echo get_post_meta($post->ID,'staff_email_address',true); ?>
        </h2>

    </div>
    <?php
    // Restore original Post Data
    wp_reset_postdata();
    }
    ?>

Now, to come to your real problem, a couple of things are missing/wrong here

First of all, as @cybnet said, $args2 in not defined anywhere. I also don’t see the need here for starting a new query if “All other posts” are just normal post type posts (this is what I can assume from your code as $args2 are empty). You can simply just start a normal loop. This loop will only loop through normal posts, not CPT’s.

Secondly, what is $query2->next_post();. You couldn’t have taken this from the codex page you’ve mentioned. This should be $query2->the_post(); as it has always been.

Thirdly, you said you need to display “All other posts”, but you are again getting the same data as your first loop in your second loop, so this I don’t understand and for this reason I’m not going to comment further on this.

According to what I see and they way I understand your code and question, here is what I would do

<?php
 $args = array( 'post_type' => 'cripps_staff', 'posts_per_page' => 300 );
    $loop = new WP_Query( $args );
    while ( $loop->have_posts() ) : $loop->the_post();
?>  

    <div class="col-md-3 spacetop">
        <a href="https://wordpress.stackexchange.com/questions/143023/<?php get_permalink(); ?>"><img src="<?php echo get_post_meta($post->ID,'image',true); ?>"></a>

        <h2 class="staffname">
            <?php echo get_post_meta($post->ID,'staff_name',true); ?>
        </h2>

        <h2 class="staffrole">
            <?php echo get_post_meta($post->ID,'staff_role',true); ?>
        </h2>

        <h2 class="staffnumber">
            <?php echo get_post_meta($post->ID,'staff_telephone_number',true); ?>
        </h2>

        <h2 class="staffemail">
            <?php echo get_post_meta($post->ID,'staff_email_address',true); ?>
        </h2>

    </div>
    <?php endwhile;

        // 2nd loop
        wp_reset_postdata();

        while ( have_posts() ) : the_post();

    ?>

    <--- Your contents of "All other posts" --->

    <?php

You should have a look at this tutorial from catswhocode about multiple loops. You can also check this page in the codex about multiple loops. PLEASE PLEASE PLEASE, this page seriously needs editing as it is using query_posts, which should never be used. WP_Query should be used in all examples.

From what I’ve given you and these links you should be able to solve your issue