1

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

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

例如,有 35 个发布的帖子,但在过去 30 天内只有 12 个。WP-Paginate 应该只显示过去 30 天内所有 12 个帖子的 2 页,但它显示 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();

?>
4

2 回答 2

3

我似乎已经解决了它,尽管它比我认为的要复杂得多。我将要显示的页数和当前页面传递给 wp_paginate 函数:

wp_paginate(array('pages' => $num_pages, 'page' => $current_page));
于 2013-02-07T20:07:10.343 回答
1

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

对于 wp pagenavi 插件

if (function_exists('wp_pagenavi')):

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

endif;

对于 wp 分页插件

if (function_exists('wp_paginate')):
   wp_paginate(false,$jobPosts);
endif;
于 2013-02-07T15:07:49.917 回答