我需要分页显示WordPress插件生成的输出。该插件从日期数据库中检索某个产品组的所有产品。基本代码是:
<?php
foreach ((array)$this->view['data']['produkte'] as $p)
{ ?>
...some html code here
}
?>
Run Code Online (Sandbox Code Playgroud)
其中$p是一个多维数组,其中包含单个产品的数据。我想将输出限制为10种产品,并为此创建一个简单的分页。该插件非常复杂,并且使用嵌套模板,因此在这种情况下,可能无法选择自定义查询。
如果有人可以指出我正确的方向,那就太好了。谢谢!
这是最终代码。非常感谢您的宝贵帮助!
<?php
$nb_elem_per_page = 3;
$page = isset($_GET['seite'])?intval($_GET['seite']-1):0;
$data = (array)$this->view['data']['produkte'];
$number_of_pages = intval(count($data)/$nb_elem_per_page)+2;
$page_no = $_REQUEST['seite'];
foreach (array_slice($data, $page*$nb_elem_per_page, $nb_elem_per_page) as $p)
{ ?> some HTML here... <?php } ?>
<?php if (count($data) > $nb_elem_per_page) { ?>
<ul id='paginator'>
<?php
for($i=1;$i<$number_of_pages;$i++){
if ($i == $page_no) {?>
<li><?php echo $i ?></li>
<?php }
else { ?>
<li><a href="<?php echo get_permalink(); ?>?show=<?php echo $_REQUEST['show']; ?>&seite=<?=$i?>"><?php echo $i ?></a></li>
<?php }} ?>
</ul>
<?php { ?>
Run Code Online (Sandbox Code Playgroud)
由于默认网址已经包含一个查询字符串,因此我不得不修改代码。我不希望当前站点在分页中具有链接。这使我获得分页查询字符串的编号:
$page_no = $_REQUEST['seite'];
Run Code Online (Sandbox Code Playgroud)
然后,我可以使用简单的if语句轻松更改分页链接:
if ($i == $page_no) {...}?>
Run Code Online (Sandbox Code Playgroud)
再次感谢!
您可能需要对此进行一些修改,但这将是这样的:
$nb_elem_per_page = 10;
$page = isset($_GET['page'])?intval($_GET['page']-1):0;
$data = (array)$this->view['data']['produkte'];
$number_of_pages = intval(count($data)/$nb_elem_per_page)+1;
<?php foreach (array_slice($data, $page*$nb_elem_per_page, $nb_elem_per_page) as $p) { ?>
...some html code here
<?php} ?>
<ul id='paginator'>
<?php
for($i=1;$i<$number_of_pages;$i++){?>
<li><a href='./?page=<?=$i?>'>$i</a></li>
<?php}?>
</ul>
Run Code Online (Sandbox Code Playgroud)