2016-03-01 78 views
3

我有了這個代碼,只是顯示一個特定作者的所有帖子:分頁一個簡單的循環

<?php 
    $all_active_tasks = get_posts(array(
    'numberposts'  => -1, 
    'offset'   => 0, 
    'post_status'  => 'publish', 
    'author'   => '1', 
    'post_type'   => 'post' 
    ) 
); 
foreach($all_active_tasks as $post) : 
$category = get_the_category(); 
setup_postdata($post); 
?> 
<div class="the-post"> 
    <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2> 
    <p><?php echo $category[0]->cat_name; ?></p> 
</div> 

<?php endforeach; ?> 
<?php wp_reset_postdata(); ?> 

但我無法弄清楚是怎麼分頁的結果,說10%頁。我看過官方的法典,但沒有任何我嘗試過似乎工作。

任何幫助表示讚賞。

回答

1

可以一起使用pagedposts_per_page參數。 WP_Query。您可以抓取當前頁面是這樣的:

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

,然後在查詢中使用它:

$all_active_tasks = get_posts(array(
    'posts_per_page' => 10, 
    'post_status'  => 'publish', 
    'author'   => '1', 
    'post_type'   => 'post', 
    'paged'    => $paged 
)); 

這樣,如果你把/page/2/在您的網址的結尾,查詢將返回崗位從11到20.

如何創建分頁本身,您可以查看這些文章: herehere

+0

這導致我最終得到它的工作。謝謝! – user3256143

+0

不客氣:) – pgk

0

設置'numberposts' => -1表示獲取所有記錄。你必須爲第10條(0-9記錄)

'numberposts'  => 10, 
'offset'   => 0, 

而對於接下來的10,(10-19記錄)

'numberposts'  => 10, 
'offset'   => 10, 

而對於接下來的10集(20-29紀錄)

'numberposts'  => 10, 
'offset'   => 20, 
0

試試這個工作代碼

把這個功能您的活動主題的functions.php文件

function custom_pagination($numpages = '', $pagerange = '', $paged='') { 



    if (empty($pagerange)) { 

    $pagerange = 2; 

    } 





    global $paged; 

    if (empty($paged)) { 

    $paged = 1; 

    } 

    if ($numpages == '') { 

    global $wp_query; 

    $numpages = $wp_query->max_num_pages; 

    if(!$numpages) { 

     $numpages = 1; 

    } 

    } 



    $pagination_args = array(

    'base'   => get_pagenum_link(1) . '%_%', 

    'format'   => 'page/%#%', 

    'total'   => $numpages, 

    'current'   => $paged, 

    'show_all'  => False, 

    'end_size'  => 1, 

    'mid_size'  => $pagerange, 

    'prev_next'  => True, 

    'prev_text'  => __('<i class="fa fa-angle-double-left"></i>'), 

    'next_text'  => __('<i class="fa fa-angle-double-right"></i>'), 

    'type'   => 'plain', 

    'add_args'  => false, 

    'add_fragment' => '' 

); 



    $paginate_links = paginate_links($pagination_args); 



    if ($paginate_links) { 

    echo "<div class='col-md-12'><nav class='custom-pagination pagination'>"; 

     echo $paginate_links; 

    echo "</nav></div>"; 

    } 



} 

,這裏是你的修改後的代碼爲分頁

工作
<?php 
    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; 

    $all_active_tasks = get_posts(array(
    'posts_per_page' => -1, 
    'paged'    => $paged, 
    'offset'   => 0, 
    'post_status'  => 'publish', 
    'author'   => '1', 
    'post_type'   => 'post' 
    ) 
); 
foreach($all_active_tasks as $post) : 
$category = get_the_category(); 
setup_postdata($post); 
?> 
<div class="the-post"> 
    <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2> 
    <p><?php echo $category[0]->cat_name; ?></p> 
</div> 

<?php endforeach; ?> 
<?php if (function_exists(custom_pagination)) { 
     custom_pagination(count($all_active_tasks),"",$paged); 
    }?> 
<?php wp_reset_postdata(); ?>