下記ページを参考にします。
レスポンシブのページネーションを設置するには以下の手順がおすすめです。
- Font Awesome呼び出しタグを貼り付ける
- functions.phpにコードを貼り付ける
- ページネーション用のスタイルシートを貼り付ける
- ページネーション表示箇所にコードを貼り付ける
1. Font Awesomeのリンクを<head></head>内に貼り付けます。
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css">
2. function.phpにコードを貼り付けます。
/* =============================================== # レスポンシブ ページネーション =============================================== */ function responsive_pagination($pages = '', $range = 4){ $showitems = ($range * 2)+1; global $paged; if(empty($paged)) $paged = 1; //ページ情報の取得 if($pages == '') { global $wp_query; $pages = $wp_query->max_num_pages; if(!$pages){ $pages = 1; } } if(1 != $pages) { echo '<ul class="pagination" role="menubar" aria-label="Pagination">'; //先頭へ echo '<li class="first"><a href="'.get_pagenum_link(1).'"><span>First</span></a></li>'; //1つ戻る echo '<li class="previous"><a href="'.get_pagenum_link($paged - 1).'"><span>Previous</span></a></li>'; //番号つきページ送りボタン for ($i=1; $i <= $pages; $i++) { if (1 != $pages &&( !($i >= $paged+$range+1 || $i <= $paged-$range-1) || $pages <= $showitems )) { echo ($paged == $i)? '<li class="current"><a>'.$i.'</a></li>':'<li><a href="'.get_pagenum_link($i).'" class="inactive" >'.$i.'</a></li>'; } } //1つ進む echo '<li class="next"><a href="'.get_pagenum_link($paged + 1).'"><span>Next</span></a></li>'; //最後尾へ echo '<li class="last"><a href="'.get_pagenum_link($pages).'"><span>Last</span></a></li>'; echo '</ul>'; } }
3. スタイルシートを貼り付けます。オリジナルとは違ってリンク色を変更しています。
/* =============================================== # レスポンシブ ページネーション =============================================== */ .pagination{ list-style-type: none; padding-left: 0; margin: 30px 0; } .pagination, .pagination li a { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; } .pagination a { font-weight: 300; padding-top: 1px; text-decoration:none; border: 1px solid #ddd; border-left-width: 0; min-width:36px; min-height:36px; color: #333; } .pagination li:not([class*="current"]) a:hover { background-color: #eee; } .pagination li:first-of-type a { border-left-width: 1px; } .pagination li.first span, .pagination li.last span, .pagination li.previous span, .pagination li.next span { /* screen readers only */ position: absolute; top: -9999px; left: -9999px; } .pagination li.first a::before, .pagination li.last a::after, .pagination li.previous a::before, .pagination li.next a::after { display: inline-block; font-family: Fontawesome; font-size: inherit; text-rendering: auto; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; transform: translate(0, 0); } .pagination li.first a::before { content: "\f100"; } .pagination li.last a::after { content: "\f101"; } .pagination li.previous a::before { content: "\f104"; } .pagination li.next a::after { content: "\f105"; } .pagination li.current a { background-color: #ddd; cursor: default; pointer-events: none; } .pagination > li:first-child > a { border-bottom-left-radius: 4px; border-top-left-radius: 4px; } .pagination > li:last-child > a { border-bottom-right-radius: 4px; border-top-right-radius: 4px; } .pagination>li>a, .pagination>li>span { color: rgba(0,0,0,1); } .pagination>li>a:focus, .pagination>li>a:hover, .pagination>li>span:focus, .pagination>li>span:hover { color: rgba(125,125,125,1); } @media only screen and ( max-width: 680px ) { .pagination li.first, .pagination li.last { /* screen readers only */ position: absolute; top: -9999px; left: -9999px; } .pagination li.previous a { border-left-width: 1px; } } @media only screen and ( max-width: 500px ) { .pagination li { /* screen readers only */ position: absolute; top: -9999px; left: -9999px; } .pagination li.current, .pagination li.first, .pagination li.last, .pagination li.previous, .pagination li.next{ position: initial; top: initial; left: initial; } .pagination li.previous a { border-left-width: 0; } } @media only screen and ( max-width: 400px ) { .pagination li.first, .pagination li.last { /* screen readers only */ position: absolute; top: -9999px; left: -9999px; } .pagination li.previous a { border-left-width: 1px; } } @media only screen and ( max-width: 240px ) { /* For watches? */ .pagination li { width: 50%;} .pagination li.current { order: 2; width: 100%; border-left-width: 1px; } }
4.ページネーション表示箇所にコードを貼り付けます。
<!--ページネーション--> <?php if (function_exists('responsive_pagination')) { responsive_pagination($additional_loop->max_num_pages); } ?>
以上で完成です。