I was hoping for a nice and clean solution already existing within WordPress, but I didn’t have the time for someone to give it to me, so I created my own pagination routine I put into the functions.php of the theme and call it from the single-auction.php template…
function my_pagination($currentID){
$args = array(
'post_type' => 'auction',
'meta_key' => 'date_time',
'orderby' => 'meta_value',
'meta_value' => date("Y-m-d h:i"),
'meta_compare' => '>=',
'order' => 'ASC',
'posts_per_page' => -1,
);
$my_query = new WP_Query($args);
//echo "<pre>"; print_r($my_query->posts); echo "</pre>";
?>
<nav id="post-navigation" class="navigation post-navigation" role="navigation" aria-label="Post Navigation">
<div class="nav-links">
<?php get_previous_auction_link($my_query,$currentID); ?>
<?php get_next_auction_link($my_query,$currentID); ?>
</div>
</nav>
<?php
wp_reset_query();
}
function get_previous_auction_link($query, $currentID) {
for ($a = 0; $a < count($query->posts); $a++) {
if ($a > 0 && $query->posts[$a]->ID == $currentID) {
?>
<div class="nav-previous">
<a href="<?php the_permalink($query->posts[($a - 1)]->ID); ?>" rel="prev">
<span class="meta-nav" aria-hidden="true">Previous:</span> <span class="screen-reader-text">Previous auction:</span> <span class="post-title"><?php echo get_the_title($query->posts[($a - 1)]->ID); ?></span>
</a>
</div>
<?php
}
}
}
function get_next_auction_link($query, $currentID) {
for ($a = 0; $a < count($query->posts); $a++) {
if ($a < (count($query->posts)-1) && $query->posts[$a]->ID == $currentID) {
?>
<div class="nav-next">
<a href="<?php the_permalink($query->posts[($a + 1)]->ID); ?>" rel="next">
<span class="meta-nav" aria-hidden="true">Next:</span> <span class="screen-reader-text">Next auction:</span> <span class="post-title"><?php echo get_the_title($query->posts[($a + 1)]->ID); ?></span>
</a>
</div>
<?php
}
}
}