I've recently had a lot of help creating an upcoming events list (see here Showing upcoming events including todays event - StackOverflow), as a result my pagination using wp_pagenavi()
is broken.
At the moment, when you click on page 2 it just shows the same posts as page one. Although the URL does actually change to page/2 page/3 etc.
I have this in my functions.php
file:
function filter_where( $where = '' ) {
$where .= " AND post_date >= '" . date("Y-m-d") . "'";
return $where;
}
add_filter( 'posts_where', 'filter_where' );
$query = new WP_Query(
array(
'post__not_in' => array(4269),
'paged' => get_query_var('paged'),
'post_type' => 'whatson',
'exclude' => '4269',
'post_status' => 'future,publish',
'posts_per_page' => 20,
'order' => 'ASC'
)
);
remove_filter( 'posts_where', 'filter_where' );
My loop is then as follows:
<?php while ( $query->have_posts() ) : $query->the_post(); ?>
// content
<?php endwhile; // end of the loop. ?>
<?php if (function_exists('wp_pagenavi')) { wp_pagenavi( array( 'query' => $query ) ); } ?>
Doing print_r ($query);
before removing the filter produced this:
get_query_var('paged')
just before creating this query and show us what's inside it?int(0)
on the first page,int(2)
on page 2, the url is also changing but it's just showing the content from the first page on all other pages. This worked fine when it was just a standard query on a page but since having to move it to the functions.php and add and date range it's not working correctly.print_r
$query
variable just after creating it (before removing filter), please?<pre>
</pre>
tag and can highlight the syntax in PHP. I tested and it worked. Thanks.