2016-03-01 64 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(); ?>