How can I make wp-pagenavi work on a custom query built upon a form submission? [closed]

I’ve also posted this on the wordpress support forums, for scribu’s wp-pagenavi plugin:

http://wordpress.org/support/topic/plugin-wp-pagenavi-custom-query-form-submit-part-2?replies=1

My situation:

I am using a form to create a custom query that displays posts from a custom post type archive matching a certain custom field (Eg: For “custom-post-type” show only posts that have the “custom-field” value selected from the form). I know, it’s called filtering 😛

My custom post type archive looks like this:

www.example.com/custom-post-type-archive

(note that I use the “post name” permalink setting)

Upon form submission, the new url is this:

www.example.com/custom-post-type-archive?key=value

The custom query is set to show only posts with value of key custom field:

$value = $_GET['value'];
$paged = get_query_var('page');
$args = array(
        'post_type' => 'custom-post-type',
        'meta_key' => 'key',
        'meta_value' => $value,
        'paged' => $paged,
        'posts_per_page' => 10
);
$my_query = new WP_Query($args);

After the loop I have:

wp_pagenavi(array('query' => $my_query));
wp_reset_postdata();

The query works, I get the right results. But I have problems getting pagination to work. When I go to the next page, I get this url:

www.example.com/custom-post-type-archive/page/2?key=value

but pagination still shows like I’m on the first page and the results are the same.

If I manually enter:

www.example.com/custom-post-type-archive?key=value&page=2

I get the right results (from page 2), but the all navigation links are the same as the url I manually entered above.

Please help (hints, resources, anything).

Thx,
Radu

6 s
6

You can try implementing ajax based pagination for wp-pagenavi plugin(see http://wordpressapi.com/2011/05/16/add-ajax-pagination-in-wordpress-blog/ for reference ). I think this will solve your issue.

Leave a Comment