我想看看是否有更有效的方法來獲取我的分頁腳本的上一個和下一個按鈕。它被設置爲接受一個參數(int)
,它設置了$posts_per_page
。當在圖庫視圖中時,圖像被列出並鏈接到漂亮的固定鏈接,例如。 site.com/membername/3483/
- 以(int)爲圖片ID。圖庫和單視圖的分頁功能 - 如何獲取NEXT和PREV? (詳細)
現在,因爲它位於單個視圖頁面上,它只顯示一個圖像。我想要有使用ID的下一個和上一個按鈕,而不是?page=
查詢變量。所以,我需要一種方法來找到相同功能中的array position
。
目前,我正在利用三種功能來實現我的目標。它們是:
ONE:function photo_gallery_paginated($posts_per_page)
這個函數接受$ posts_per_page,並返回分頁畫廊。它在畫廊頁面上被這樣調用;
$allImages = (array)query_user_uploads('all');
$pg = (get_query_var('pg')) ? get_query_var('pg') : 1;
$prev = $pg -1;
$next = $pg +1;
然後通過手動將圖片ID添加到URL中來建立鏈接。
<a class="thumbnail view-photo" href="../photo-single/<?php echo $image->attachment_id; ?>"><img src="<?php echo wp_get_attachment_thumb_url($image->attachment_id ); ?>"></a>
二:function query_user_uploads($attr, $attachID = null)
此功能將查詢功能提供查詢完全相同的數據。它用於下面的功能三。它被放置在畫廊的單個頁面上(當你從函數一中單擊一個圖像時,它將被加載到單個頁面中),並且被這樣調用;
$attachmentID = get_query_var('photo-single');
$attachmentData = query_user_uploads('single', $attachmentID);
THREE:
這是用於從左至右顯示圖庫單分頁功能。該想法曾經在圖庫單頁上,您可以單擊下一頁和上一頁來瀏覽用戶圖像。
function locate_buttons($id, $array) {
foreach ($array as $key => $val) {
if ($val->ID === $id) {
$current = $key;
if (isset($array[$current+1]))
$next = $array[$key+1];
else
$next = $array[$key];
if (isset($array[$current-1]))
$prev = $array[$key-1];
else
$prev = $array[$key];
$button['next'] = $next;
$button['prev'] = $prev;
$button['current'] = $array[$key];
return $button;
}
}
return null;
}
這就是它的名稱(在頁面底部);
$buttonsBuild = locate_buttons($attachmentID, query_user_uploads('all'));
$prev = $buttonsBuild['prev']->ID;
$next = $buttonsBuild['next']->ID;
這將返回圖像的下一個和以前的ID號碼。但是這顯然非常低效,並且三次調用相同的DB數據。在我咬下頭之前,這是我第一次寫分頁功能 - 是的,我知道我可以使用?ID=3483&offset=3
- 我已經使用過了。但是我想要在URL中重寫ID以實現書籤目的。因此,對於那些閱讀過這些內容的人來說,如果你能幫助我簡化這一點,我會選擇你作爲最佳答案。預先感謝您,我會在這裏回答任何澄清問題。
沒有問題的人,我能做到這一點,但它仍有一個如何獲得下一個ID爲單頁的問題。當我這樣做時,它只會改變最後一個查詢。因此每個圖像都具有相同的ID,只有偏移量發生變化。 –
@GregL使PHP的行爲與仿真區域中的下一張圖像一樣,並獲取下一張圖像的ID。我不知道該怎麼做,對不起。但據我所知,你的功能是可能的。 –