
目次
paginate_links()の用途
paginate_links()
は、現在のクエリに基づいてページナビゲーションのリンクを生成するテンプレートタグです。アーカイブページやカスタムクエリの結果など、複数ページにまたがる投稿リストに使用されます。
paginate_links()の使用方法
paginate_links( array $args );
パラメータ
パラメータ名 | 説明 |
---|---|
base | ページ番号リンクの基本URL形式。%#% をページ番号に置き換えます。通常は get_pagenum_link() と str_replace() を使って構築します。 |
format | ページ番号のURLに使う形式。例:'?paged=%#%' や '/page/%#%' |
total | 総ページ数。通常は $wp_query->max_num_pages を指定します。 |
current | 現在のページ番号。max(1, get_query_var('paged')) を使用するのが一般的です。 |
show_all | すべてのページ番号を表示するか。true にすると全ページを表示します。デフォルトは false 。 |
end_size | 最初と最後に表示するページ番号の数。デフォルトは 1 。 |
mid_size | 現在ページの前後に表示するページ番号の数。デフォルトは 2 。 |
prev_next | 「前へ」「次へ」のリンクを表示するか。デフォルトは true 。 |
prev_text | 「前へ」リンクのテキスト。例:« 前へ |
next_text | 「次へ」リンクのテキスト。例:次へ » |
type | 出力形式。'plain' (文字列)、'array' (配列)、'list' (<ul> タグ付き)から選択可能。デフォルトは 'plain' 。 |
add_args | クエリ引数を追加したい場合に使用。配列形式で指定。 |
add_fragment | 各リンクの末尾に追加する文字列(例:#section1 )。 |
before_page_number | ページ番号の前に追加するテキスト。 |
after_page_number | ページ番号の後に追加するテキスト。 |
戻り値
- 指定した形式のページナビゲーションHTML(または配列)を返します。
- 表示させるには
echo
が必要です。
paginate_links()の使用例
<?php
global $wp_query;
echo paginate_links( array(
'base' => str_replace( 999999999, '%#%', esc_url( get_pagenum_link( 999999999 ) ) ),
'format' => '?paged=%#%',
'current' => max( 1, get_query_var( 'paged' ) ),
'total' => $wp_query->max_num_pages,
'mid_size' => 2,
'prev_text' => '« 前へ',
'next_text' => '次へ »',
) );
?>
paginate_links()の注意点
paginate_links()
はページ番号のみを出力します。前後の<nav>
やラップ用の<div class="pagination">
などはテーマに応じて別途用意してください。- カスタムクエリ(
WP_Query
を使用)で使う場合は$custom_query->max_num_pages
を指定してください。 type
を'array'
にすると、各リンクを配列として取得できるので、カスタムHTML構造で出力したいときに便利です。