我需要爲由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