ページャーのスニペット

2019.3.23

ページャーのスニペット

概要

ブログなどでページャーを付ける時のスニペットです。
ページ数が多い場合は、現在のページの前後を省略して表示することができます。

コードはこちら。

<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>';

関連記事