Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为一个简单的循环分页_Php_Wordpress_Pagination - Fatal编程技术网

Php 为一个简单的循环分页

Php 为一个简单的循环分页,php,wordpress,pagination,Php,Wordpress,Pagination,我有一个代码,它只显示特定作者的所有帖子: <?php $all_active_tasks = get_posts(array( 'numberposts' => -1, 'offset' => 0, 'post_status' => 'publish', 'author' => '1', 'post_type' => 'post

我有一个代码,它只显示特定作者的所有帖子:

<?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页。我看过官方的抄本,但我试过的都没用


感谢您的帮助。

设置
'numberposts'=>-1
表示获取所有记录。必须设置前10条记录(0-9条记录)

对于下一个10,(10-19条记录)

对于下一个10(20-29条记录)

试试这个工作代码

将此函数放入活动主题的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>";

  }



}
函数自定义分页($numpages='',$pagerange='',$paged=''){
if(空($pagerange)){
$pagerange=2;
}
全球$paged;
如果(空($paged)){
$paged=1;
}
如果($numpages==''){
全局$wp_查询;
$numpages=$wp\u query->max\u num\u页面;
如果(!$numpages){
$numpages=1;
}
}
$pagination_args=数组(
'base'=>get_pagenum_link(1)。'%\%',
'格式'=>'第/%#%'页,
“总计”=>$numpages,
“当前”=>$paged,
“全部显示”=>False,
“结束大小”=>1,
“中等大小”=>$pagerange,
“上一步”=>正确,
“上一个文本”=>”,
“下一个文本”=>”,
'类型'=>'普通',
'add_args'=>false,
“添加片段”=>“
);
$paginate_links=paginate_links($pagination_args);
如果($paginate_链接){
回声“;
echo$paginate_链接;
回声“;
}
}
这是您为分页而修改的代码

<?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(); ?>


您可以将
paged
posts\u per\u page
参数一起使用。您可以像这样抓取当前页面:

$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/
放在url的末尾,查询将返回从11到20的帖子

如何创建分页本身,您可以查看以下文章:
而且。

这让我最终让它开始工作。谢谢
<?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(); ?>
$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
));