You shouldn’t be using custom queries in these templates. The main query (using have_posts();
, the_post();
etc. without $loop
) is already set up with the correct posts for these templates.
Look at the custom query you’re using on the single template:
$args = array('post_type' => 'journal',
'showposts' => 1,
'post_status' => 'publish',
'orderby' => 'date',
'order' => 'DESC');
$loop = new WP_Query($args);
That’s a query for the latest journal post. So of that’s what you’re going to see when you use $loop->the_post()
. Also, showposts
is deprecated. Use posts_per_page
instead.
So this:
if ( $loop->have_posts() ) : while ( $loop->have_posts() ) : $loop->the_post(); ?>
Needs to be:
if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>