この記事は、最後の更新から1274日を超えています。
2019.3.23 / 2022.4.20 update
ブログなどでページャーを付ける時のスニペットです。
ページ数が多い場合は、現在のページの前後を省略して表示することができます。
コードはこちら。
<div>
<?php
/* ↓ 設定が必要な変数 ↓ */
$pager_max = 3; // 全ページ数
$pager_now = 1; // 現在のページ番号(1〜)
$pager_around_num = 4; // ページ番号が多い時に現在のページ番号の前後に表示させるリンクの数(1以上の任意の数)
/* ↑ 設定が必要な変数 ↑ */
$around_st = $pager_now - $pager_around_num; // [1 ... 4 5 6 ... 10] の4の位置(5が現在ページ)
$around_ed = $pager_now + $pager_around_num; // [1 ... 4 5 6 ... 10] の6の位置(5が現在ページ)
for( $i=1; $i<=$pager_max; $i++ ){
if( $i==$pager_now ){
// 現在のページ
echo '<span>'. $i .'</span>';
}elseif( $i==1 || $i==$pager_max ){
// 先頭か末尾のリンク
echo '<a href="ページのURL?pg='.$i.'">'. $i .'</a>';
}elseif( ($around_st-1)>=2 && $i==2 ){
// ページャーの省略文字(左側)
echo '・・・';
}elseif( ($pager_max-$around_ed)>=2 && $i==($pager_max-1) ){
// ページャーの省略(右側)
echo '・・・';
}elseif( $i>=$around_st && $i<=$around_ed ){
// 現在のページの前後のリンク
echo '<a href="ページのURL?pg='.$i.'">'. $i .'</a>';
}
}
?>
</div>
$pager_max ・・・ 全ページ数をこの変数に代入してください。
$pager_now ・・・ 現在のページ番号を代入してください。ページ番号は1から始まります。
$pager_around_num ・・・ ページ番号を省略する際に、現在のページ番号の前後に表示させるリンクの数を指定してください。
ページのURL ・・・ ページのURL?pg= の部分は、サイトの設定に合わせてください(2箇所)
[1]・・・[4][5][6]・・・[10] のようにページ番号を省略する際に、省略される部分に表示される文字の設定ができます。
echo '・・・'; の部分を任意の文字に変えてください。
デザインなどは、各タグにclassなどを付けてください。
また、次へボタンなどもお好みで付けてください。
現在のページ番号は$_GET['pg']などで取得してください
現在のページ番号を取得(URLのパラメータ変数名がpgの場合)
<?php
// ページ番号の取得サンプル
$pager_now = 1;
if( isset($_GET['pg']) && $_GET['pg']>=1 ){
$pager_now = intval($_GET['pg']);
}
?>
ページャーの前へ、次へボタン。ページャーを表示するループの前と後にそれぞれ入れてください。
// 前へボタン
if( $pager_now>1 ){
echo '<a href="ページのURL?pg='.($pager_now-1).'">前へ</a>';
}
// 次へボタン
if( $pager_now>=1 && $pager_now<$pager_max ){
echo '<a href="ページのURL?pg='.($pager_now-1).'">前へ</a>';
}
WordPressでのURLの設定(トップページ)
echo '<a href="'.esc_url(home_url('/')).'?pg='.$i.'">'. $i .'</a>';
関連記事
©dgcolor.info