2013-02-07 131 views
0

我正在使用自定义查询来检索过去30天内发布的自定义帖子类型的帖子。带自定义查询的WP-Paginate

我安装了wp-paginate并正在使用它进行分页。页面本身工作正常,但wp-paginate似乎为所有帖子显示足够的页面,无论它们是否返回,但是自定义查询。

例如,已发布35篇文章,但在过去30天内只有12篇。 WP-Paginate在过去30天中应该只显示12页所有12篇文章,但它显示4页,第3页和第4页为空白。

我的查询代码:

<?php 

$current_page = (get_query_var('paged')) ? get_query_var('paged') : 1; 

function filter_where($where = '') { 
    $where .= " AND post_date > '" . date('Y-m-d', strtotime('-30 days')) . "'"; 
    return $where; 
} 

$jobPosts = null; 
add_filter('posts_where', 'filter_where'); 
$jobPosts = new WP_Query('post_type=job_boards&paged=' . $current_page); 
remove_filter('posts_where', 'filter_where'); 

while ($jobPosts -> have_posts()) : $jobPosts -> the_post(); 

    // Display stuff 

endwhile; wp_reset_postdata(); 

if (function_exists('wp_paginate')) wp_paginate(); 

?> 

回答

2

我似乎已经解决了它,虽然它比我想它要复杂得多。我将页数和当前页面显示到wp_paginate函数中:

wp_paginate(array('pages' => $num_pages, 'page' => $current_page)); 
+0

不错的家伙,如果有其他人搜索周围,这个工程。要获取当前页面,请使用上面发布的代码Phil,对于$ num_pages,使用$ wp_query-> max_num_pages – sanchy

0

在使用自定义查询试试下面

对于WP pagenavi插件

if (function_exists('wp_pagenavi')): 

wp_pagenavi(array('query' => $jobPosts)); 

endif; 

对于WP PAGINATE插件

if (function_exists('wp_paginate')): 
    wp_paginate(false,$jobPosts); 
endif; 
+0

我仍然得到4个页码,其中2页(3和4)为空白。 – Phil