質問編集履歴

2

内容の修正

2022/06/01 21:35

投稿

hrdyuic
hrdyuic

スコア5

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

コードの修正

2022/06/01 21:29

投稿

hrdyuic
hrdyuic

スコア5

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
- 2ページ目にいると「前へ 1 2 3 4 次へ」
6
+ 1ページ目にいると「前へ 1 2 3 4 次へ」
8
- 3ページ目にいると「前へ 1 2 3 4 5 次へ」
9
- 4ページ目にいると「前へ 2 3 4 5 次へ」
7
+ 2ページ目にいると「前へ 2 3 4 5 次へ」
10
- 5ページ目にいると「前へ 3 4 5」
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
- $showitems = ($range * 1)+1;
26
+ $showitems = ($range * 1) + 1;
27
- global $paged;
27
+ global $paged;
28
- if(empty($paged)) $paged = 1;
28
+ if(empty($paged)) $paged = 1;
29
- if($pages == ''){
29
+ if($pages == ''){
30
- global $wp_query;
30
+ global $wp_query;
31
- $pages = $wp_query->max_num_pages;
31
+ $pages = $wp_query->max_num_pages;
32
- if(!$pages){
32
+ if(!$pages){
33
- $pages = 1;
33
+ $pages = 1;
34
- }
34
+ }
35
- }
35
+ }
36
- if(1 != $pages){
36
+ if(1 != $pages){
37
- // 画像を使う時用に、テーマのパスを取得
37
+ // 画像を使う時用に、テーマのパスを取得
38
- $img_pass = get_template_directory_uri();
38
+ $img_pass = get_template_directory_uri();
39
- echo "<div class=\"m-pagenation\">";
39
+ echo "<div class=\"m-pagenation\">";
40
- // 「1/2」表示 現在のページ数 / 総ページ数
40
+ // 「1/2」表示 現在のページ数 / 総ページ数
41
- // echo "<div class=\"m-pagenation__result\">". $paged."/". $pages."</div>";
41
+ // echo "<div class=\"m-pagenation__result\">". $paged."/". $pages."</div>";
42
- // 「前へ」を表示
42
+ // 「前へ」を表示
43
- if($paged > 1) echo "<div class=\"m-pagenation__prev\"><a href='".get_pagenum_link($paged - 1)."'>前へ</a></div>";
43
+ if($paged >= 1) echo "<div class=\"m-pagenation__prev\"><a href='".get_pagenum_link($paged - 1)."'>前へ</a></div>";
44
- // ページ番号を出力
44
+ // ページ番号を出力
45
- echo "<ol class=\"m-pagenation__body\">\n";
45
+ echo "<ol class=\"m-pagenation__body\">\n";
46
- for ($i=1; $i <= $pages; $i++){
46
+ for ($i=1; $i <= $pages; $i++){
47
- if (1 != $pages &&( !($i >= $paged+$range+1 || $i <= $paged-$range-1) || $pages <= $showitems )){
47
+ if (1 != $pages &&( !($i >= $paged+$range+2 || $i <= $paged-$range+1) || $pages <= $showitems )){
48
- echo ($paged == $i)? "<li class=\"-current\">".$i."</li>": // 現在のページの数字はリンク無し
48
+ echo ($paged == $i)? "<li class=\"-current\">".$i."</li>": // 現在のページの数字はリンク無し
49
- "<li><a href='".get_pagenum_link($i)."'>".$i."</a></li>";
49
+ "<li><a href='".get_pagenum_link($i)."'>".$i."</a></li>";
50
- }
50
+ }
51
- }
51
+ }
52
- // [...] 表示
52
+ // [...] 表示
53
- // if(($paged + 4 ) < $pages){
53
+ // if(($paged + 4 ) < $pages){
54
- // echo "<li class=\"notNumbering\">...</li>";
54
+ // echo "<li class=\"notNumbering\">...</li>";
55
- // echo "<li><a href='".get_pagenum_link($pages)."'>".$pages."</a></li>";
55
+ // echo "<li><a href='".get_pagenum_link($pages)."'>".$pages."</a></li>";
56
- // }
56
+ // }
57
- echo "</ol>\n";
57
+ echo "</ol>\n";
58
- // 「次へ」を表示
58
+ // 「次へ」を表示
59
- if($paged < $pages) echo "<div class=\"m-pagenation__next\"><a href='".get_pagenum_link($paged + 1)."'>次へ</a></div>";
59
+ if($paged <= $pages) echo "<div class=\"m-pagenation__next\"><a href='".get_pagenum_link($paged + 1)."'>次へ</a></div>";
60
- echo "</div>\n";
60
+ echo "</div>\n";
61
- }
61
+ }
62
62
  }
63
63
  ```