質問編集履歴
2
内容の修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
現在、下記サイトを参考にページネーションを実装していますが苦戦しております。
|
2
2
|
[WordPressでページネーションをつくる方法と仕組みの解説]https://since-inc.jp/blog/8506
|
3
3
|
|
4
|
-
【前提・実現したいこと】
|
4
|
+
【前提・実現したいこと】※2022年6月2日にコードの修正を行い以下の状態になっております。
|
5
5
|
下記のソースコードでは、全5ページの場合
|
6
6
|
1ページ目にいると「前へ 1 2 3 4 次へ」
|
7
7
|
2ページ目にいると「前へ 2 3 4 5 次へ」
|
1
コードの修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -2,12 +2,12 @@
|
|
2
2
|
[WordPressでページネーションをつくる方法と仕組みの解説]https://since-inc.jp/blog/8506
|
3
3
|
|
4
4
|
【前提・実現したいこと】
|
5
|
-
下記のソースコードでは、
|
5
|
+
下記のソースコードでは、全5ページの場合
|
6
|
-
1ページ目にいると「1 2 3 次へ」
|
7
|
-
|
6
|
+
1ページ目にいると「前へ 1 2 3 4 次へ」
|
8
|
-
3ページ目にいると「前へ 1 2 3 4 5 次へ」
|
9
|
-
|
7
|
+
2ページ目にいると「前へ 2 3 4 5 次へ」
|
10
|
-
|
8
|
+
3ページ目にいると「前へ 3 4 5 次へ」
|
9
|
+
4ページ目にいると「前へ 4 5 次へ」
|
10
|
+
5ページ目にいると「前へ 5 次へ」
|
11
11
|
となります。
|
12
12
|
|
13
13
|
1ページ目のときに「前へ 1 2 3 4 次へ」
|
@@ -23,41 +23,41 @@
|
|
23
23
|
【ソースコード】
|
24
24
|
```ここに言語を入力
|
25
25
|
function pagenation($pages = '', $range = 2){
|
26
|
-
|
26
|
+
$showitems = ($range * 1) + 1;
|
27
|
-
|
27
|
+
global $paged;
|
28
|
-
|
28
|
+
if(empty($paged)) $paged = 1;
|
29
|
-
|
29
|
+
if($pages == ''){
|
30
|
-
|
30
|
+
global $wp_query;
|
31
|
-
|
31
|
+
$pages = $wp_query->max_num_pages;
|
32
|
-
|
32
|
+
if(!$pages){
|
33
|
-
|
33
|
+
$pages = 1;
|
34
|
-
|
34
|
+
}
|
35
|
-
|
35
|
+
}
|
36
|
-
|
36
|
+
if(1 != $pages){
|
37
|
-
|
37
|
+
// 画像を使う時用に、テーマのパスを取得
|
38
|
-
|
38
|
+
$img_pass = get_template_directory_uri();
|
39
|
-
|
39
|
+
echo "<div class=\"m-pagenation\">";
|
40
|
-
|
40
|
+
// 「1/2」表示 現在のページ数 / 総ページ数
|
41
|
-
|
41
|
+
// echo "<div class=\"m-pagenation__result\">". $paged."/". $pages."</div>";
|
42
|
-
|
42
|
+
// 「前へ」を表示
|
43
|
-
|
43
|
+
if($paged >= 1) echo "<div class=\"m-pagenation__prev\"><a href='".get_pagenum_link($paged - 1)."'>前へ</a></div>";
|
44
|
-
|
44
|
+
// ページ番号を出力
|
45
|
-
|
45
|
+
echo "<ol class=\"m-pagenation__body\">\n";
|
46
|
-
|
46
|
+
for ($i=1; $i <= $pages; $i++){
|
47
|
-
|
47
|
+
if (1 != $pages &&( !($i >= $paged+$range+2 || $i <= $paged-$range+1) || $pages <= $showitems )){
|
48
|
-
|
48
|
+
echo ($paged == $i)? "<li class=\"-current\">".$i."</li>": // 現在のページの数字はリンク無し
|
49
|
-
|
49
|
+
"<li><a href='".get_pagenum_link($i)."'>".$i."</a></li>";
|
50
|
-
|
50
|
+
}
|
51
|
-
|
51
|
+
}
|
52
|
-
|
52
|
+
// [...] 表示
|
53
|
-
|
53
|
+
// if(($paged + 4 ) < $pages){
|
54
|
-
|
54
|
+
// echo "<li class=\"notNumbering\">...</li>";
|
55
|
-
|
55
|
+
// echo "<li><a href='".get_pagenum_link($pages)."'>".$pages."</a></li>";
|
56
|
-
|
56
|
+
// }
|
57
|
-
|
57
|
+
echo "</ol>\n";
|
58
|
-
|
58
|
+
// 「次へ」を表示
|
59
|
-
|
59
|
+
if($paged <= $pages) echo "<div class=\"m-pagenation__next\"><a href='".get_pagenum_link($paged + 1)."'>次へ</a></div>";
|
60
|
-
|
60
|
+
echo "</div>\n";
|
61
|
-
|
61
|
+
}
|
62
62
|
}
|
63
63
|
```
|