我正在寻求有关如何对foreach输出分页的帮助。我查看了其他问题和答案,但找不到适合我的解决方案,也找不到可以自己解决的解决方案。现在,下面的代码将所有内容输出到表行中。当然,我的问题是,它将所有数据转储到一个页面上——因此我需要分页。我想为页面上的每11项分页。这一页是一份杂志档案,每年有11期——因此每一页相当于我们杂志的1年。第一页应该是第1-11期,第二页应该是第12-22期,等等。我们有10年的杂志期。任何帮助都将不胜感激。非常感谢。
<table>
<tr>
<?php $col = 0; ?>
<?php foreach (get_terms(\'term\') as $cat) : ?>
<?php if ($col > 0 && $col % 3 == 0): ?>
</tr>
<tr>
<?php endif; ?>
<?php $col++; ?>
<td>
<a href="<?php echo get_term_link($cat->slug, \'term\'); ?>"><strong><?php echo $cat->name; ?></strong></a><br>
<em><a href="<?php echo get_term_link($cat->slug, \'term\'); ?>"><?php echo $cat->description; ?></a></em><br>
<a href="<?php echo get_term_link($cat->slug, \'term\'); ?>"><img src="<?php echo z_taxonomy_image_url($cat->term_id); ?>" /></a>
</td>
<?php endforeach; ?>
</tr>
</table>
SO网友:user2591811
以下是我用来解决问题的代码:
<?php
$url = $_SERVER["REQUEST_URI"];
$segments = explode(\'/\', $url);
$page = is_numeric($segments[count($segments)-2]) ? $segments[count($segments)-2] : 1;
$next = $page + 1;
$prev = $page - 1;
$issues_per_page = 11;
$lastpage = ceil(wp_count_terms( \'mag\') / $issues_per_page) ;
?>
<?php wp_count_terms( \'mag\' ); ?>
<table>
<tr>
<?php $col = 0; ?>
<?php foreach (get_terms(\'mag\', array(\'offset\' => ($page - 1) * $issues_per_page, \'number\' => $issues_per_page)) as $cat) : ?>
<?php if ($col > 0 && $col % 3 == 0): ?>
</tr>
<tr>
<?php endif; ?>
<?php $col++; ?>
<td>
<a href="<?php echo get_term_link($cat->slug, \'mag\'); ?>"><strong><?php echo $cat->name; ?></strong></a><br>
<em><a href="<?php echo get_term_link($cat->slug, \'mag\'); ?>"><?php echo $cat->description; ?></a></em><br>
<a href="<?php echo get_term_link($cat->slug, \'mag\'); ?>"><img src="<?php echo z_taxonomy_image_url($cat->term_id); ?>" /></a>
</td>
<?php endforeach; ?>
</tr>
</table>
<?php if ($prev > 0) : ?>
<a href="/mag-archive?page=<?php echo $prev; ?>">Previous</a>
<?php endif ?>
<?php if ($page < $lastpage) : ?>
<a href="/mag-archive?page=<?php echo $next; ?>">Next</a>
<?php endif ?>