我需要为由WordPress插件生成的输出分页。该插件从数据库中检索某个产品组的所有产品。基本码是:对于foreach循环的简单分页
<?php
foreach ((array)$this->view['data']['produkte'] as $p)
{ ?>
...some html code here
}
?>
其中$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 { ?>
由于默认的url已经包含一个查询字符串,所以我不得不修改代码一点点。我不希望当前网站在分页中有链接。这让我分页查询字符串的数量:再次
if ($i == $page_no) {...}?>
感谢:
$page_no = $_REQUEST['seite'];
然后我可以很容易地改变分页链接用一个简单的if语句!
非常感谢。我快到了。问题是,基本的URL已经使用了一个查询字符串,如“www.domain.com/productsgroups?show = 12”(其中12是产品组的编号)。我试图修改你的代码,如下所示:'
我不这么认为。 这是正常的:'www.domain.com/productsgroups?'没有.php扩展名? –
是的,这是标准行为。这是一个WordPress网站。该页面没有扩展名。插件只需将查询字符串?show = xx添加到www.domain.com/page/。 (编号参考ID = 12的产品组。)您的代码正常工作并创建正确的分页。唯一的问题是链接到不起作用的子页面。我不知道如何组合两个查询字符串。 – user2516117