2012-04-24 24 views
3

$ wpdbクラスを使用してデータベースから画像の場所を取得し、画像のギャラリーを作成できるとします。私はこのコードを持っていますが、「次へ」を押すとリンクはどこにも見えません。何か不足していますか?

<?php 
global $wpdb; 
$wpdb->show_errors(); 
$offset = 0; 
if(isset($_GET['page']) && !empty($_GET['page'])){ 
$offset = ($_GET['page']-1) * 10; // (page 2 - 1)*10 = offset of 10 
} 
$pics = $wpdb->get_col("SELECT pic_thumb_url FROM wp3_bp_album 
WHERE owner_type = 'user' ORDER BY title DESC 
LIMIT 10 OFFSET $offset" 
); 
//LIMIT shows 10 results per page 
//OFFSET will 'skip' this number off results. On page 1 the offset is 0 on page 2 it is 10  (if 10 results per page) 
foreach($pics as $pic) : 
echo '<a href ="'. '#' .'" > <img src="' . $pic . '">' . '</a>'; 

endforeach; 


/* 
pagination 
*/ 
?> 
<a href="/community/?page=<?php echo $_GET['page']-1 ?>">previous</a> 
<a href="/community/?page=<?php echo $_GET['page']+1 ?>">next</a> 

これでページ付けを実装できますか?

答えて

3

組み込みページネーションを使用することはできませんが、ページ分割を使用するには、クエリにOFFSETLIMITを使用してください。だから、あなた自身の改ページを行います。

<?php 
$offset = 0; 
if(isset($_GET['page']) && !empty($_GET['page']) { 
    $offset = ($_GET['page']-1) * 10; // (page 2 - 1)*10 = offset of 10 
} 
$wpdb->get_col("SELECT pic_thumb_url FROM wp3_bp_album 
    WHERE owner_type = 'user' ORDER BY title DESC 
    LIMIT 10 OFFSET $offset" 
); 
//LIMIT shows 10 results per page 
//OFFSET will 'skip' this number off results. On page 1 the offset is 0 on page 2 it is 10 (if 10 results per page) 

/* 
pagination 
*/ 
?> 
<a href="/currentpage/?page=<?php echo $_GET['page']-1 ?>">previous</a> 
<a href="/currentpage/?page=<?php echo $_GET['page']+1 ?>">next</a> 

完璧はない、それはあなたの最初または最後のページにあるかどうかを確認しかし、あなたが自分自身を構築する必要があり、少なくとも最初のチェックしません。

+0

申し訳ありませんが、どういう意味ですか。 「ページ区切りでビルドを使用することはできません」とはどういう意味ですか、オフセットの例を与えて制限することはできますか?ありがとうございました! –

+0

Wordpressは次のようなページ機能をビルドしています:http://codex.wordpress.org/Function_Reference/paginate_linksあなたのコードでは動作しません。編集中のSQL – janw

+0

ありがとうJanw。私はあなたの推薦をオフセットと限界に使用しました。私は今、ページ上で10の結果を得ていますが、どのように実際に改ページしますか? –

関連する問題