ページネーションの作成 – WordPressプラグインの作成 12

投稿者: | 2018年2月18日

前回コーディングした top.php にはテーブル(表)が表示されます。テーブルの行数が多くなるとページが見づらくなったり、表示に時間がかかったりするようになるため、ページ内に表示する行数を制限します。これは、WordPressの投稿一覧などと同じなので、詳しく説明する必要はないと思います。
テーブルの上部や下部に(今回は上部だけですが)、下図のようなページを切り替える仕組み、ページネーションを表示します。
ページネーション
このページネーションは top.php の 54行目で、以下のようにインクルードするように記述しています。

<?php include FOW_OH_PLUGIN_DIR . '/views/pagination.php'?>

インクルードされるファイル pagination.php を作成します。

pagination.php の作成

pagination.php ファイルは、viewsフォルダー内に作成します。内容は次のとおりです。

<?php
$pagination = $this->settings['pagination'];
$current = intval($pagination['current']);
$max = intval($pagination['max']);
$first = $current - intval(floor($pagination['middle'] / 2));
$last = $current + intval(floor($pagination['middle'] / 2));

if ($first < 1) {
    $first = 1;
}
if ($last > $max) {
    $last = $max;
}

$enable_back = ($current >= 2);
$enable_next = ($current <= $max - 1);
$omit_flont = ($first >= 3);
$omit_back = ($last <= $max - 2);
?>
<button type="submit" name="paged" class="button button-secondary" value="<?=$current - 1?>" <?=$enable_back ? '' : 'disabled'?>>&lt;前</button>
<?php if ($omit_flont): ?>
    <button type="submit" name="paged" class="button button-secondary" value="1">1</button>
    <span area-hidden="true">・</span>
<?php endif;?>
<?php for ($i = $first; $i <= $last; $i++): ?>
    <button type="submit" name="paged" class="button button-<?=$current === $i ? 'primary' : 'secondary'?>" value="<?=$i?>"><?=$i?></button>
<?php endfor;?>
<?php if ($omit_back): ?>
    <span area-hidden="true">・</span>
    <button type="submit" name="paged" class="button button-secondary" value="<?=$max?>"><?=$max?></button>
<?php endif;?>
<button type="submit" name="paged" class="button button-secondary" value="<?=$current + 1?>" <?=$enable_next ? '' : 'disabled'?>>次&gt;</button>

ページネーションの作成 – WordPressプラグインの作成 12」への2件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)