2013-02-07 78 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