WordPressで簡単、プラグインなしでページネーション設置方法。
カテゴリ:WEB制作
タグ:
WordPressでサイト制作時には導入することが多いページネーション導入方法です。
「ページネーション 設置」などで検索しているとfunctions.phpを触るものなどがかなりたくさん出てきますが、ループする際にページネーションを指示するだけなので直書きで問題ないです。
細かい説明も紹介しております。
コードについて
外部フォント(アイコン)を読み込み
矢印アイコンを使用するため外部フォントを読み込みます。
header.phpでスタイルを読み込ませてください。
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
PHPを編集
以下の処理を一覧ページなどのページネーションを使用したいところに貼り付けます。
<!--ループの処理--> <ul> <?php $page_number = get_query_var('paged'); //現在のページ番号を取得 $page_number = $page_number == 0 ? '1' : $page_number; //$page_number == 0がもし0だった場合は1を代入、0以外であれば$page_numberをそのまま出力 $args = array( 'posts_per_page' => 10, //1ページに表示させる記事数をを指定 'paged' => $paged, //ページ送りを設定するかどうかを指定 ); $the_query = new WP_Query($args); if ( $the_query->have_posts() ) : while ( $the_query->have_posts() ) : $the_query->the_post(); ?> <li>ここに記事の処理</li> <?php endwhile; ?> <?php else: ?> <li>記事がありません。</li> <?php endif; ?> </ul> <!--ここからページネーション--> <?php $post_num = get_option('posts_per_page'); //1ページに投稿する記事数を取得 $Post_no = wp_count_posts('post'); //記事数を取得 $Post_no = $Post_no->publish; //公開済みの記事数を取得 ?> <?php if ($the_query->max_num_pages > 1) { //ページが複数あるかどうかをチェック echo '<div class="pagination">'.paginate_links(array( //paginate_linksリンクで値を渡してページネーションを生成 'base' => get_pagenum_link(1) . '%_%', 'format' => 'page/%#%/', 'current' => max(1, $paged), 'prev_text' => '<i class="fa fa-angle-left"></i>', 'next_text' => '<i class="fa fa-angle-right"></i>', 'total' => $the_query->max_num_pages )).'</div>'; } ?> <?php wp_reset_postdata(); ?>
CSSを追加
CSSでデザインを定義します。
.pagination { margin: 60px auto 90px; padding: 10px 0; text-align: center } .pagination a { font-size: 9pt; line-height: 35px; text-align: center; letter-spacing: 0; display: inline-block; height: 35px; width: 35px; border-radius: 50%; background: #f3f3f3; transition: .3s } .pagination a:hover { color: #FFF; background: #323232; } .pagination span { font-size: 9pt; line-height: 35px; text-align: center; letter-spacing: 0; display: inline-block; height: 35px; width: 35px; border-radius: 50%; background: #f3f3f3 } .pagination span.dots { background: 0 } .pagination span.current { background: #323232; color: #fff }
スタイルを適用すると上のようなページネーションになります。
必要に応じてスタイルを書き換えてください。
出力されるHTML
出力されるコードは以下のような感じになります。
<div class="pagination"> <span aria-current='page' class='page-numbers current'>1</span> <a class='page-numbers' href='◯◯◯◯◯'>2</a> <a class='page-numbers' href='◯◯◯◯◯'>3</a> <span class="page-numbers dots">…</span> <a class='page-numbers' href='◯◯◯◯◯'>6</a> <a class="next page-numbers" href="◯◯◯◯◯"><i class="fa fa-angle-right"></i></a> </div>