下記ページを参考にします。
レスポンシブのページネーションを設置するには以下の手順がおすすめです。
- 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);
} ?>
以上で完成です。