WordPress ページネーション
大前提として、ページネーションは固定ページで実装すること
投稿ページだと、ページの概念がないため
固定ページblogを作成 URLスラッグをblog-eventsにしておく
これで page-blog-events.php で、ページネーションが作用するようになった。
カスタムクエリに追記する
page-blog-events.php
<?php $args = array( //pagedが必要 'paged' => get_query_var('paged', 1), 'post_type' => 'blog', 'posts_per_page' => 12, ); $blog_query = new WP_Query($args); ?>
get_query_var の第2引数は1にしておく。最初のページという事
関数リファレンス/get query var - WordPress Codex 日本語版
<?php $args = array( //pagedが必要 'paged' => get_query_var('paged', 1), 'post_type' => 'post', 'posts_per_page' => 10, ); $blog_query = new WP_Query($args); ?> <?php if ($blog_query->have_posts() ) : ?> <?php while ($blog_query->have_posts()) : $blog_query->the_post() ; ?>
ページネーション
echo paginate_linksを利用する
<?php echo paginate_links( $args ); ?>
公式サイト
関数リファレンス/paginate links - WordPress Codex 日本語版
引数のデフォルト
<?php $args = array( 'base' => '%_%', 'format' => '?page=%#%', 'total' => 1, 'current' => 0, 'show_all' => False, 'end_size' => 1, 'mid_size' => 2, 'prev_next' => True, 'prev_text' => __('« Previous'), 'next_text' => __('Next »'), 'type' => 'plain', 'add_args' => False, 'add_fragment' => '', 'before_page_number' => '', 'after_page_number' => '' ); ?>
カスタムクエリは$blog_query
max_num_pagesはプロパティ
<?php $args = array( 'total' => $blog_query->max_num_pages ); echo paginate_links( $args ); ?>
味気ないけど上記でこれが表示される
ulタグ liタグともに クラスは page-numbers 現在ページには spanタグを出力する
なので、このクラスにページネーションのクラスを当てる
完成形
ls40