Custom Post Types with a common category for a blog listing

You are missing <?php endwhile; ?> before the end of content div.

get_header(); 

    $args = array('post_type' => array('post','media-appearance','members-archive','money-saving-tips','review'),
    'posts_per_page' => '20',
);

    $this_query = new WP_Query( $args ); ?>


<div id="primary" class="site-content">
    <div id="content" role="main">

    <?php while ( $this_query->have_posts()) : $this_query->the_post(); {?>

        <?php if( has_post_thumbnail() && ($cat == 'budget') ): ?>
    <div class="tip-excerpt">                                     
        <h1 class="entry-title">
            <a href="https://wordpress.stackexchange.com/questions/348791/<?php the_permalink(); ?>" rel="bookmark"><?php the_title(); ?></a>
        </h1>

    <div class="entry-content">
        <a href="https://wordpress.stackexchange.com/questions/348791/<?php the_permalink(); ?>"><?php the_post_thumbnail('thumbnail', array('class' => 'alignleft')); ?></a><?php the_excerpt(); ?>
    </div>
    </div>
        <?php endif; ?>        

                <?php wp_reset_query(); ?>
            <?php  // done the foreach statement ?>

     <?php endwhile; ?> //ADDED CODE
    </div><!-- #content -->
</div><!-- #primary -->

<?php get_sidebar(); ?>