質問するログイン新規登録

回答編集履歴

1

クリック範囲を広げるを追記

2022/09/08 13:29

投稿

March03
March03

スコア47

answer CHANGED
@@ -31,4 +31,49 @@
31
31
 
32
32
  echo $html;
33
33
 
34
- ```
34
+ ```
35
+
36
+ ### 追記
37
+ クリック範囲を広げるということは、aタグの中にspanタグを入れるということですね。
38
+ 以下のようにすれば実現可能だと思いますが、ここまで来るとJavaScriptの方がいいですね…。
39
+ ちなみに下記のPHPでの対応はpreg_replace関数や正規表現について調べれば、ご自身でも自由に調整できると思うで一度調べてみてください。
40
+ ```php
41
+ // ここは変更していません
42
+ $big = 9999999999;
43
+ $paginate_links = paginate_links( array(
44
+ 'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
45
+ 'format' => 'page/%#%/',
46
+ 'current' => max(1, $paged),
47
+ 'prev_next' => true,
48
+ 'prev_text' => '',
49
+ 'next_text' => '',
50
+ 'type' => 'array',
51
+ ));
52
+
53
+ // --------------------------------------------------------------------
54
+ // 以下を変更しています
55
+
56
+ // ページネーションの数字部分をliで囲む
57
+ $pattern1 = '/<(.*?)>([0-9])+<\/(.*?)>/s';
58
+ $replace1 = '<li><$1>$2</$3></li>';
59
+ $paginate_links = preg_replace( $pattern1, $replace1, $paginate_links );
60
+
61
+ // ページネーションのaタグの中にspanタグを入れる
62
+ $pattern2 = '/<a class="page-numbers"(.*?)>([0-9])+<\/a>/s';
63
+ $replace2 = '<a class="page-numbers"$1><span class="pagination-item">$2</span></a>';
64
+ $paginate_links = preg_replace( $pattern2, $replace2, $paginate_links );
65
+
66
+ // ページネーションの現在のページにspanタグを入れる
67
+ $pattern3 = '/<span aria-current="page"(.*?)>([0-9])+<\/span>/s';
68
+ $replace3 = '<span aria-current="page"$1><span class="pagination-item">$2</span></span>';
69
+ $paginate_links = preg_replace( $pattern3, $replace3, $paginate_links );
70
+
71
+
72
+ // HTMLを1つに繋げる
73
+ $html = '<ul class="pagination"><li>';
74
+ foreach ($paginate_links as $paginate_link) {
75
+ $html .= $paginate_link;
76
+ }
77
+ $html .= '</li></ul>';
78
+
79
+ echo $html;```