I have read as many other problems like mine and not been able to find a fix. For some reason my custom query is not paginating and I can not work out why. It is probably a silly reason but hope you can help.
Here is my code.
<?php
global $wp_query;
$title = $wp_query->post->post_title;
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$query = new WP_Query(
array(
'paged' => $paged,
'wpse18703_title' => "$title",
'posts_per_page' => 10,
'post__not_in' => array($post->ID),
'post_type' => array('post', 'features'),
)
);
if ($query->have_posts()){
while ( $query->have_posts() ) { $query->the_post(); ?>
<a href="<?php echo get_permalink(); ?>">
<div class="small-12 large-12 gdb-news-container">
<div class="small-12 large-4 columns gdb-news-image">
<?php the_post_thumbnail('game-news-thumb'); ?>
</div>
<div class="small-12 large-8 columns game-title">
<h5><?php the_title(); ?></h5>
<?php echo content(20); ?>
</div>
<div class="clearfix"></div>
</div>
</a>
<?php
} //end while
wp_reset_query();
} //end if
?>
<?php if ( function_exists('reverie_pagination') ) { reverie_pagination(); } else if ( is_paged() ) { ?>
<nav id="post-nav">
<div class="post-previous"><?php next_posts_link( __( '← Older posts', 'reverie' ) ); ?></div>
<div class="post-next"><?php previous_posts_link( __( 'Newer posts →', 'reverie' ) ); ?></div>
</nav>
<?php } ?>
<?php
if(isset($_GET['paged']) && !empty($_GET['paged'])):endif;
global $wp_query;
$temp = $wp_query;
$wp_query = null;
$title = $wp_query->post->post_title;
$args = array(
'paged' => $paged,
'wpse18703_title' => "$title",
'posts_per_page' => 10,
'post__not_in' => array($post->ID),
'post_type' => array('post', 'features')
);
$wp_query = new WP_Query($args);
if($wp_query->have_posts()){
while($wp_query->have_posts()){
$wp_query->the_post(); ?>
<a href="<?php echo get_permalink(); ?>">
<span class="small-12 large-12 gdb-news-container">
<span class="small-12 large-4 columns gdb-news-image">
<?php the_post_thumbnail('game-news-thumb'); ?>
</span>
<span class="small-12 large-8 columns game-title">
<h5><?php the_title(); ?></h5>
<?php echo content(20); ?>
</span>
</span>
</a>
<?php }
}
$wp_query = null;
$wp_query = $temp;
if(function_exists('reverie_pagination')){reverie_pagination();} else if (is_paged()){ ?>
<nav id="post-nav">
<div class="post-previous"><?php next_posts_link( __( '← Older posts', 'reverie' ) ); ?></div>
<div class="post-next"><?php previous_posts_link( __( 'Newer posts →', 'reverie' ) ); ?></div>
</nav><?php
}
?>
I changed you div's with the classes "small-12" to span's because it is invalid W3C code to put a div inside an anchor tag, so you might have to modify your css file, depending on how it was coded.
I think you are using your $paged
variable wrong (i am guessing you are using it inside "pages" not "posts"). This should work both on pages and posts:
if ( get_query_var( 'paged' ) ) {
$paged = absint( get_query_var( 'paged' ) );
} elseif ( get_query_var( 'page' ) ) {
$paged = absint( get_query_var( 'page' ) );
} else {
$paged = 1;
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.