固定ページにページネーションを追加するとき、404エラーになった場合は、rewrite rule が正しくない。
ので、下記を functions.php に追加するべし。
// 固定ページのページネーション用リライトルール
function custom_rewrite_rule() {
add_rewrite_rule('(information)/page/?([0-9]{1,})/?$', 'index.php?pagename=$matches[1]&paged=$matches[2]', 'top');
}
add_action('init', 'custom_rewrite_rule');
ちなみに、ページネーションは下記みたいな感じで。
(どこかのサイトのコードを参考に作った記憶があるけど、覚えてない。。。)
<div class="pagination">
<?php //ページリスト表示処理
global $wp_rewrite;
$paginate_base = get_pagenum_link(1);
if (strpos($paginate_base, '?') || !$wp_rewrite->using_permalinks()) {
$paginate_format = '';
$paginate_base = add_query_arg('paged', '%#%');
} else {
$paginate_format = (substr($paginate_base, -1, 1) == '/' ? '' : '/') .
user_trailingslashit('page/%#%/', 'paged');
$paginate_base .= '%_%';
}
echo paginate_links(array(
'base' => $paginate_base,
'format' => $paginate_format,
'total' => $query->max_num_pages,
'mid_size' => 2,
'current' => $paged,
'prev_text' => '前へ',
'next_text' => '次へ',
));
?>
</div>
あと、$paged は下記を追加しておかないと、きちんと値が拾えない。
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;