質問編集履歴

3

情報追加

2021/03/22 10:12

投稿

ztj
ztj

スコア14

test CHANGED
File without changes
test CHANGED
@@ -132,6 +132,16 @@
132
132
 
133
133
  ### ページャーについて
134
134
 
135
+ 記事とプルダウン(ターム)、それぞれ投稿タイプごとに所有するものが表示されるようになりましたが、ページャーがそれごとに生成されません。
136
+
137
+ 恐らくNEWS以外のページの記事も合算されてページャーが生成されています。
138
+
139
+ 例えば1ページ10の記事が表示されるとして、NEWS記事は5、他投稿タイプで30の記事がある場合、
140
+
141
+ NEWSで4ページ分のページャーが生成されてしまいます。
142
+
143
+ (表示されている記事は5つのみ、2ページ目以降は記事はなくページャーのみ)
144
+
135
145
  ```php
136
146
 
137
147
  //functions.phpの内容です

2

説明追加

2021/03/22 10:12

投稿

ztj
ztj

スコア14

test CHANGED
File without changes
test CHANGED
@@ -132,7 +132,9 @@
132
132
 
133
133
  ### ページャーについて
134
134
 
135
+ ```php
136
+
135
- ```functions.php
137
+ //functions.phpの内容です
136
138
 
137
139
 
138
140
 

1

コードの追加

2021/03/22 10:08

投稿

ztj
ztj

スコア14

test CHANGED
File without changes
test CHANGED
@@ -125,3 +125,191 @@
125
125
  うまく伝わるかわかりませんが、情報不足な点があったらお知らせください。
126
126
 
127
127
  よろしくお願いいたします。
128
+
129
+
130
+
131
+
132
+
133
+ ### ページャーについて
134
+
135
+ ```functions.php
136
+
137
+
138
+
139
+ <?php //ページャー部分
140
+
141
+ function pagination( $pages, $paged, $range = 2, $show_only = false ) {
142
+
143
+ $pages = ( int ) $pages;
144
+
145
+ $paged = $paged ?: 1;
146
+
147
+ $text_first = "<<";
148
+
149
+ $text_before = "<";
150
+
151
+ $text_next = ">";
152
+
153
+ $text_last = ">>";
154
+
155
+ if ( $show_only && $pages === 1 ) {
156
+
157
+ echo '<div class="pager"><ul class="pager-list"><li><a class="current" href="">1</a></li></ul></div>';
158
+
159
+ return;
160
+
161
+ }
162
+
163
+ if ( $pages === 1 ) return; // 1ページのみで表示設定もない場合
164
+
165
+ if ( 1 !== $pages ) {
166
+
167
+ //2ページ以上の時
168
+
169
+ echo '<div class="pager"><ul class="pager-list">';
170
+
171
+ // echo '<div class="pagination"><span class="page_num">Page ', $paged ,' of ', $pages ,'</span>';
172
+
173
+ //現在のページ数などを表示する場合はこの上のコメントアウトを外す。
174
+
175
+ if ( $paged > $range + 1 ) {
176
+
177
+ // 「最初へ」 の表示
178
+
179
+ echo '<li class="prev-area"><a href="', get_pagenum_link(1) ,'" class="prev">', $text_first ,'</a></li>';
180
+
181
+ }
182
+
183
+ if ( $paged > 1 ) {
184
+
185
+ // 「前へ」 の表示
186
+
187
+ echo '<li class="prev-area"><a href="', get_pagenum_link( $paged - 1 ) ,'" class="prev">', $text_before ,'</a></li>';
188
+
189
+ }
190
+
191
+ for ( $i = 1; $i <= $pages; $i++ ) {
192
+
193
+ if ( $i <= $paged + $range && $i >= $paged - $range ) {
194
+
195
+ // $paged +- $range 以内であればページ番号を出力
196
+
197
+ if ( $paged === $i ) {
198
+
199
+ echo '<li><a class="current" href="">', $i ,'</a></li>';
200
+
201
+ } else {
202
+
203
+ echo '<li><a href="', get_pagenum_link( $i ) ,'">', $i ,'</a></li>';
204
+
205
+ }
206
+
207
+ }
208
+
209
+ }
210
+
211
+ if ( $paged < $pages ) {
212
+
213
+ // 「次へ」 の表示
214
+
215
+ echo '<li class="next-area"><a href="', get_pagenum_link( $paged + 1 ) ,'" class="next">', $text_next ,'</a></li>';
216
+
217
+ }
218
+
219
+ if ( $paged + $range < $pages ) {
220
+
221
+ // 「最後へ」 の表示
222
+
223
+ echo '<li class="next-area"><a href="', get_pagenum_link( $pages ) ,'" class="next">', $text_last ,'</a></li>';
224
+
225
+ }
226
+
227
+ echo '</ul></div>';
228
+
229
+ }
230
+
231
+ }
232
+
233
+ ?>
234
+
235
+
236
+
237
+ ```
238
+
239
+
240
+
241
+ ```php
242
+
243
+
244
+
245
+ <ul>
246
+
247
+ <?php
248
+
249
+ $paged = get_query_var('paged') ? get_query_var('paged') : 1 ;
250
+
251
+ $term = wp_get_object_terms($post->ID, 'items');
252
+
253
+ $args = array(
254
+
255
+ 'post_type' => 'news',
256
+
257
+ 'taxonomy' => 'items',
258
+
259
+ 'term' => $term[0]->slug,
260
+
261
+ 'posts_per_page' => 7,
262
+
263
+ 'paged' => $paged
264
+
265
+ );
266
+
267
+ $custom_query = new WP_Query( $args );
268
+
269
+ if ( $custom_query->have_posts() ) :
270
+
271
+ while ( $custom_query->have_posts() ) :
272
+
273
+ $custom_query->the_post();
274
+
275
+ ?>
276
+
277
+      <!-- ▽ ループ開始 ▽ -->
278
+
279
+ <li>
280
+
281
+ 記事内容
282
+
283
+ </li>
284
+
285
+ <!-- △ ループ終了 △ -->
286
+
287
+
288
+
289
+ <?php endwhile;
290
+
291
+ endif;
292
+
293
+ wp_reset_postdata();
294
+
295
+ ?>
296
+
297
+ </ul>
298
+
299
+ <!-- ページネーション -->
300
+
301
+ <?php
302
+
303
+ if ( function_exists( 'pagination' ) ) :
304
+
305
+ pagination( $wp_query->max_num_pages, get_query_var( 'paged' ) );
306
+
307
+ endif;
308
+
309
+ ?>
310
+
311
+
312
+
313
+
314
+
315
+ ```