質問編集履歴
12
追記6を追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -455,3 +455,35 @@
|
|
455
455
|
試しに手入力でURLクエリを?order=diff_subsribers&paged=2にしてみたら、意図通りに表示されました。
|
456
456
|
|
457
457
|
ページネーションの次へを押したときにURLクエリが?order=diff_subsribers&paged=2になるにはどうすればいいですか?
|
458
|
+
|
459
|
+
|
460
|
+
|
461
|
+
追記 6
|
462
|
+
|
463
|
+
if文の中で`$paged_query = '&paged=%#%'`を追加して、ページネーションの部分を以下のようにすれば意図通りに表示されした。
|
464
|
+
|
465
|
+
```php
|
466
|
+
|
467
|
+
if ($query->max_num_pages > 1) {
|
468
|
+
|
469
|
+
$paginate_links = paginate_links(array(
|
470
|
+
|
471
|
+
'base' => get_pagenum_link(1).'%_%',
|
472
|
+
|
473
|
+
'format' => $paged_query,
|
474
|
+
|
475
|
+
'current' => max(1, $paged),
|
476
|
+
|
477
|
+
'total' => $query->max_num_pages,
|
478
|
+
|
479
|
+
'prev_next' => true,
|
480
|
+
|
481
|
+
'prev_text' => '前へ',
|
482
|
+
|
483
|
+
'next_text' => '次へ'
|
484
|
+
|
485
|
+
));
|
486
|
+
|
487
|
+
}
|
488
|
+
|
489
|
+
```
|
11
追記5を追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -445,3 +445,13 @@
|
|
445
445
|
追記 4
|
446
446
|
|
447
447
|
`paginate_links()`の引数の連想配列の'format'を'?paged=%#%'に変えたら、URLクエリをつけない場合は意図通りに表示されましたが、?order=diff_subscribersをつけた場合は変化なしでした。
|
448
|
+
|
449
|
+
|
450
|
+
|
451
|
+
追記 5
|
452
|
+
|
453
|
+
URLクエリが?order=diff_subsribersの場合に、ページネーションの次へを押すとURLクエリが?order=diff_subsribers?paged=2になっていました。
|
454
|
+
|
455
|
+
試しに手入力でURLクエリを?order=diff_subsribers&paged=2にしてみたら、意図通りに表示されました。
|
456
|
+
|
457
|
+
ページネーションの次へを押したときにURLクエリが?order=diff_subsribers&paged=2になるにはどうすればいいですか?
|
10
'format'を'?paged=%#%'に変えた場合の結果を追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -439,3 +439,9 @@
|
|
439
439
|
|
440
440
|
|
441
441
|
`var_dump($paged);`は常に`int(1)`でした。
|
442
|
+
|
443
|
+
|
444
|
+
|
445
|
+
追記 4
|
446
|
+
|
447
|
+
`paginate_links()`の引数の連想配列の'format'を'?paged=%#%'に変えたら、URLクエリをつけない場合は意図通りに表示されましたが、?order=diff_subscribersをつけた場合は変化なしでした。
|
9
var_dump($paged)の結果を追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -435,3 +435,7 @@
|
|
435
435
|
?order=diff_subsribers%3Fpage%3D2%3Fpage%3D2?page=2
|
436
436
|
|
437
437
|
という風にURLクエリが長くなっていきます。
|
438
|
+
|
439
|
+
|
440
|
+
|
441
|
+
`var_dump($paged);`は常に`int(1)`でした。
|
8
コードのファイル名を追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -198,7 +198,7 @@
|
|
198
198
|
|
199
199
|
wordpressの1ページの表示を3で以下のコードで実行ました。
|
200
200
|
|
201
|
-
|
201
|
+
テーマのindex.php
|
202
202
|
|
203
203
|
```php
|
204
204
|
|
7
試したこと4を追記、文字数制限のため試したこと2を削除
test
CHANGED
File without changes
|
test
CHANGED
@@ -150,12 +150,58 @@
|
|
150
150
|
|
151
151
|
|
152
152
|
|
153
|
+
|
154
|
+
|
155
|
+
|
156
|
+
|
157
|
+
追記
|
158
|
+
|
159
|
+
`if (isset($_GET["order"]) && $_GET["order"] == "diff_subsribers") :`の中のコードが間違っていました。
|
160
|
+
|
161
|
+
誤 `$query = new WP_QUERY('cat='.$cat_id);`
|
162
|
+
|
163
|
+
正 `$query = new WP_QUERY($args);`
|
164
|
+
|
165
|
+
ただ、`$args`の`'posts_per_page'`を10、wordpressの1ページの表示する投稿数を10にすると?order=diff_subscribersをつけてもつけなくてもページネーションで2ページ目のリンクが表示され、クリックすると1ページ目と同じものが表示されます。
|
166
|
+
|
167
|
+
追記2
|
168
|
+
|
169
|
+
`$args`の`'posts_per_page'`を30、wordpressの1ページの表示する投稿数を30の時は2ページ目のリンクは表示されず、意図通りに表示されます。
|
170
|
+
|
171
|
+
|
172
|
+
|
153
|
-
試したこと
|
173
|
+
試したこと 3
|
154
|
-
|
174
|
+
|
155
|
-
|
175
|
+
ページネーションの関数に問題があるのかもしれないと思い、ページネーションの部分を
|
156
176
|
|
157
177
|
```php
|
158
178
|
|
179
|
+
<div class="pagination"><?php the_posts_pagination(array(
|
180
|
+
|
181
|
+
'screen_reader_text' => " "
|
182
|
+
|
183
|
+
)); ?></div>
|
184
|
+
|
185
|
+
```
|
186
|
+
|
187
|
+
に変えましたが、変化なしです。
|
188
|
+
|
189
|
+
|
190
|
+
|
191
|
+
追記3
|
192
|
+
|
193
|
+
?paged=にどんな数字を入れても1ページ目と同じものが表示されます。
|
194
|
+
|
195
|
+
|
196
|
+
|
197
|
+
試したこと 4
|
198
|
+
|
199
|
+
wordpressの1ページの表示を3で以下のコードで実行ました。
|
200
|
+
|
201
|
+
|
202
|
+
|
203
|
+
```php
|
204
|
+
|
159
205
|
<?php get_header(); ?>
|
160
206
|
|
161
207
|
<div class="container">
|
@@ -182,180 +228,114 @@
|
|
182
228
|
|
183
229
|
<?php
|
184
230
|
|
185
|
-
|
231
|
+
$paged = (int)(get_query_var('paged')) ? get_query_var('paged') : 1;
|
232
|
+
|
186
|
-
|
233
|
+
var_dump($paged);
|
234
|
+
|
187
|
-
|
235
|
+
$args = array(
|
188
|
-
|
236
|
+
|
189
|
-
|
237
|
+
'posts_per_page' => 3,
|
238
|
+
|
190
|
-
|
239
|
+
'posts_per_archive_page' => 3,
|
240
|
+
|
191
|
-
|
241
|
+
'post_type' => 'post',
|
192
|
-
|
242
|
+
|
193
|
-
|
243
|
+
'paged' => $paged,
|
194
|
-
|
195
|
-
|
244
|
+
|
196
|
-
|
197
|
-
|
245
|
+
'order' => 'DESC',
|
198
|
-
|
246
|
+
|
199
|
-
|
247
|
+
'orderby' => 'date'
|
200
|
-
|
248
|
+
|
201
|
-
|
249
|
+
);
|
250
|
+
|
251
|
+
if (isset($_GET["order"]) && $_GET["order"] == "diff_subsribers") {
|
252
|
+
|
253
|
+
$args['category_name'] = "diff_subscribers";
|
254
|
+
|
255
|
+
$query = new WP_QUERY($args);
|
256
|
+
|
257
|
+
echo "<table><tbody>";
|
202
258
|
|
203
259
|
|
204
260
|
|
261
|
+
if ($query->post_count !== 0) {
|
262
|
+
|
263
|
+
while ($query->have_posts()) {
|
264
|
+
|
265
|
+
$query->the_post();
|
266
|
+
|
267
|
+
echo "<tr>".the_content()."</tr>";
|
268
|
+
|
269
|
+
}
|
270
|
+
|
271
|
+
}
|
272
|
+
|
273
|
+
echo "</tbody></table>";
|
274
|
+
|
275
|
+
|
276
|
+
|
277
|
+
} elseif (isset($_GET["order"]) && $_GET["order"] == "view_count") {
|
278
|
+
|
279
|
+
$cat_id = get_cat_ID("view_counts");
|
280
|
+
|
281
|
+
//未実装
|
282
|
+
|
283
|
+
} else {
|
284
|
+
|
285
|
+
$args['category_name'] = "subscribers";
|
286
|
+
|
205
|
-
$query = new WP_QUERY($args);
|
287
|
+
$query = new WP_QUERY($args);
|
206
288
|
|
207
289
|
echo "<table><tbody>";
|
208
290
|
|
209
|
-
|
210
|
-
|
211
|
-
if ($query->post_count !== 0)
|
291
|
+
if ($query->post_count !== 0) {
|
212
|
-
|
292
|
+
|
213
|
-
while ($query->have_posts())
|
293
|
+
while ($query->have_posts()) {
|
214
294
|
|
215
295
|
$query->the_post();
|
216
296
|
|
217
297
|
echo "<tr>".the_content()."</tr>";
|
218
298
|
|
219
|
-
endwhile;
|
220
|
-
|
221
|
-
|
299
|
+
}
|
300
|
+
|
222
|
-
|
301
|
+
}
|
302
|
+
|
223
|
-
echo "</tbody></table>";
|
303
|
+
echo "</tbody></table>";
|
224
|
-
|
225
|
-
|
226
|
-
|
304
|
+
|
227
|
-
|
305
|
+
}
|
228
|
-
|
229
|
-
|
306
|
+
|
230
|
-
|
231
|
-
|
307
|
+
if ($query->max_num_pages > 1) {
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
308
|
+
|
236
|
-
|
237
|
-
while (have_posts()) : the_post();
|
238
|
-
|
239
|
-
echo "<tr>".the_content()."</tr>";
|
240
|
-
|
241
|
-
endwhile;
|
242
|
-
|
243
|
-
endif;
|
244
|
-
|
245
|
-
echo "</tbody></table>";
|
246
|
-
|
247
|
-
*/
|
248
|
-
|
249
|
-
/*
|
250
|
-
|
251
|
-
$p
|
309
|
+
$paginate_links = paginate_links(array(
|
310
|
+
|
252
|
-
|
311
|
+
'base' => get_pagenum_link(1).'%_%',
|
312
|
+
|
253
|
-
'
|
313
|
+
'format' => '?page=%#%',
|
314
|
+
|
254
|
-
|
315
|
+
'current' => max(1, $paged),
|
316
|
+
|
317
|
+
'total' => $query->max_num_pages,
|
318
|
+
|
255
|
-
'
|
319
|
+
'prev_next' => true,
|
256
|
-
|
257
|
-
|
320
|
+
|
258
|
-
|
259
|
-
'
|
321
|
+
'prev_text' => '前へ',
|
260
|
-
|
322
|
+
|
261
|
-
'
|
323
|
+
'next_text' => '次へ'
|
262
324
|
|
263
325
|
));
|
264
326
|
|
265
|
-
|
266
|
-
|
267
|
-
echo "<table><tbody>";
|
268
|
-
|
269
|
-
foreach ($posts as $post) : setup_postdata($post);
|
270
|
-
|
271
|
-
echo "<tr>".the_content()."</tr>";
|
272
|
-
|
273
|
-
endforeach;
|
274
|
-
|
275
|
-
echo "</tbody></table>";
|
276
|
-
|
277
|
-
*/
|
278
|
-
|
279
|
-
elseif (isset($_GET["order"]) && $_GET["order"] == "view_count") :
|
280
|
-
|
281
|
-
$cat_id = get_cat_ID("view_counts");
|
282
|
-
|
283
|
-
//未実装
|
284
|
-
|
285
|
-
else :
|
286
|
-
|
287
|
-
$args = array(
|
288
|
-
|
289
|
-
'posts_per_page' => 30,
|
290
|
-
|
291
|
-
'post_type' => 'post',
|
292
|
-
|
293
|
-
'offset' => 0,
|
294
|
-
|
295
|
-
'category_name' => "subscribers",
|
296
|
-
|
297
|
-
'order' => 'DESC',
|
298
|
-
|
299
|
-
'orderby' => 'date'
|
300
|
-
|
301
|
-
|
327
|
+
}
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
328
|
+
|
306
|
-
|
307
|
-
echo "<table><tbody>";
|
308
|
-
|
309
|
-
var_dump($query->post_count);
|
310
|
-
|
311
|
-
if ($query->post_count !== 0) :
|
312
|
-
|
313
|
-
while ($query->have_posts()) : $query->the_post();
|
314
|
-
|
315
|
-
echo "<tr>".the_content()."</tr>";
|
316
|
-
|
317
|
-
endwhile;
|
318
|
-
|
319
|
-
|
329
|
+
wp_reset_postdata();
|
320
|
-
|
321
|
-
|
330
|
+
|
322
|
-
|
323
|
-
|
331
|
+
echo '<div class=""pagination">';
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
332
|
+
|
328
|
-
|
329
|
-
|
333
|
+
echo $paginate_links;
|
330
|
-
|
334
|
+
|
331
|
-
|
335
|
+
echo '</div>';
|
332
|
-
|
333
|
-
foreach ($posts as $post) : setup_postdata($post);
|
334
|
-
|
335
|
-
echo "<tr>".the_content()."</tr>";
|
336
|
-
|
337
|
-
endforeach;
|
338
|
-
|
339
|
-
echo "</tbody></table>";
|
340
|
-
|
341
|
-
*/
|
342
|
-
|
343
|
-
endif;
|
344
336
|
|
345
337
|
?>
|
346
338
|
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
<div class="pagination"><?php online_the_posts_pagination(array(
|
352
|
-
|
353
|
-
'screen_reader_text' => " "
|
354
|
-
|
355
|
-
)); ?></div>
|
356
|
-
|
357
|
-
|
358
|
-
|
359
339
|
</main>
|
360
340
|
|
361
341
|
</div>
|
@@ -366,44 +346,92 @@
|
|
366
346
|
|
367
347
|
```
|
368
348
|
|
349
|
+
|
350
|
+
|
351
|
+
URLクエリがない場合
|
352
|
+
|
369
|
-
|
353
|
+
1ページ目はsubscribersカテゴリの投稿が以下のように表示されます。
|
370
|
-
|
371
|
-
|
372
|
-
|
354
|
+
|
373
|
-
|
355
|
+
投稿1
|
374
|
-
|
375
|
-
|
356
|
+
|
376
|
-
|
377
|
-
誤 `$query = new WP_QUERY('cat='.$cat_id);`
|
378
|
-
|
379
|
-
正 `$query = new WP_QUERY($args);`
|
380
|
-
|
381
|
-
ただ、`$args`の`'posts_per_page'`を10、wordpressの1ページの表示する投稿数を10にすると?order=diff_subscribersをつけてもつけなくてもページネーションで2ページ目のリンクが表示され、クリックすると1ページ目と同じものが表示されます。
|
382
|
-
|
383
|
-
|
357
|
+
投稿2
|
384
|
-
|
385
|
-
|
358
|
+
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
|
359
|
+
投稿3
|
390
|
-
|
360
|
+
|
361
|
+
|
362
|
+
|
391
|
-
ページ
|
363
|
+
1ページ目のページネーション
|
392
|
-
|
364
|
+
|
393
|
-
```
|
365
|
+
```html
|
394
|
-
|
366
|
+
|
395
|
-
<div class="pagination">
|
367
|
+
<div class="pagination">
|
396
|
-
|
368
|
+
|
397
|
-
|
369
|
+
<span aria-current='page' class='page-numbers current'>1</span>
|
398
|
-
|
370
|
+
|
399
|
-
|
371
|
+
<a class='page-numbers' href='http://localhost/TestPHP/ASMRrank/wordpress/?page=2'>2</a>
|
372
|
+
|
373
|
+
<a class="next page-numbers" href="http://localhost/TestPHP/ASMRrank/wordpress/?page=2">次へ</a></div>
|
400
374
|
|
401
375
|
```
|
402
376
|
|
403
|
-
|
377
|
+
|
404
|
-
|
405
|
-
|
406
|
-
|
407
|
-
|
378
|
+
|
408
|
-
|
409
|
-
|
379
|
+
2ページ目の投稿は1ページ目と同じ投稿が表示されます。
|
380
|
+
|
381
|
+
2ページ目のページネーション
|
382
|
+
|
383
|
+
```html
|
384
|
+
|
385
|
+
<div class="pagination">
|
386
|
+
|
387
|
+
<span aria-current='page' class='page-numbers current'>1</span>
|
388
|
+
|
389
|
+
<a class='page-numbers' href='http://localhost/TestPHP/ASMRrank/wordpress/?page=2?page=2'>2</a>
|
390
|
+
|
391
|
+
<a class="next page-numbers" href="http://localhost/TestPHP/ASMRrank/wordpress/?page=2?page=2">次へ</a></div>
|
392
|
+
|
393
|
+
```
|
394
|
+
|
395
|
+
2ページ目で次へを押すと?page=2?page=2
|
396
|
+
|
397
|
+
もう一度押すと?page=2%3Fpage%3D2?page=2
|
398
|
+
|
399
|
+
もう一度押すと?page=2%3Fpage%3D2%3Fpage%3D2?page=2
|
400
|
+
|
401
|
+
という風にURLクエリが長くなっていきます。
|
402
|
+
|
403
|
+
|
404
|
+
|
405
|
+
URLクエリがorder=diff_subscribersの場合
|
406
|
+
|
407
|
+
1ページ目はsubscribersカテゴリの投稿が以下のように表示されます。
|
408
|
+
|
409
|
+
投稿1
|
410
|
+
|
411
|
+
投稿2
|
412
|
+
|
413
|
+
投稿3
|
414
|
+
|
415
|
+
|
416
|
+
|
417
|
+
ページネーションの次へを押すとsubsribersカテゴリの
|
418
|
+
|
419
|
+
投稿1
|
420
|
+
|
421
|
+
投稿2
|
422
|
+
|
423
|
+
投稿3
|
424
|
+
|
425
|
+
が表示されます。
|
426
|
+
|
427
|
+
|
428
|
+
|
429
|
+
次へを押すごとに
|
430
|
+
|
431
|
+
?order=diff_subsribers?page=2
|
432
|
+
|
433
|
+
?order=diff_subsribers%3Fpage%3D2?page=2
|
434
|
+
|
435
|
+
?order=diff_subsribers%3Fpage%3D2%3Fpage%3D2?page=2
|
436
|
+
|
437
|
+
という風にURLクエリが長くなっていきます。
|
6
追記3を追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -401,3 +401,9 @@
|
|
401
401
|
```
|
402
402
|
|
403
403
|
に変えましたが、変化なしです。
|
404
|
+
|
405
|
+
|
406
|
+
|
407
|
+
追記3
|
408
|
+
|
409
|
+
?paged=にどんな数字を入れても1ページ目と同じものが表示されます。
|
5
文を見やすく修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -146,7 +146,7 @@
|
|
146
146
|
|
147
147
|
コードのコメントアウトに書いてある通り、get_postsを使ったループも試してみましたが、こちらも二重ループになってしまいます。
|
148
148
|
|
149
|
-
var_dump($query->post_count)とvar_dump(count($posts))はint(6)と表示されました。
|
149
|
+
`var_dump($query->post_count)`と`var_dump(count($posts))`は`int(6)`と表示されました。
|
150
150
|
|
151
151
|
|
152
152
|
|
@@ -372,17 +372,17 @@
|
|
372
372
|
|
373
373
|
追記
|
374
374
|
|
375
|
-
if (isset($_GET["order"]) && $_GET["order"] == "diff_subsribers") :の中のコードが間違っていました。
|
375
|
+
`if (isset($_GET["order"]) && $_GET["order"] == "diff_subsribers") :`の中のコードが間違っていました。
|
376
|
-
|
376
|
+
|
377
|
-
誤 $query = new WP_QUERY('cat='.$cat_id);
|
377
|
+
誤 `$query = new WP_QUERY('cat='.$cat_id);`
|
378
|
-
|
378
|
+
|
379
|
-
正 $query = new WP_QUERY($args);
|
379
|
+
正 `$query = new WP_QUERY($args);`
|
380
|
-
|
380
|
+
|
381
|
-
ただ、$argsの'posts_per_page'を10、wordpressの1ページの表示する投稿数を10にすると?order=diff_subscribersをつけてもつけなくてもページネーションで2ページ目のリンクが表示され、クリックすると1ページ目と同じものが表示されます。
|
381
|
+
ただ、`$args`の`'posts_per_page'`を10、wordpressの1ページの表示する投稿数を10にすると?order=diff_subscribersをつけてもつけなくてもページネーションで2ページ目のリンクが表示され、クリックすると1ページ目と同じものが表示されます。
|
382
382
|
|
383
383
|
追記2
|
384
384
|
|
385
|
-
$argsの'posts_per_page'を30、wordpressの1ページの表示する投稿数を30の時は2ページ目のリンクは表示されず、意図通りに表示されます。
|
385
|
+
`$args`の`'posts_per_page'`を30、wordpressの1ページの表示する投稿数を30の時は2ページ目のリンクは表示されず、意図通りに表示されます。
|
386
386
|
|
387
387
|
|
388
388
|
|
4
試した
test
CHANGED
File without changes
|
test
CHANGED
@@ -383,3 +383,21 @@
|
|
383
383
|
追記2
|
384
384
|
|
385
385
|
$argsの'posts_per_page'を30、wordpressの1ページの表示する投稿数を30の時は2ページ目のリンクは表示されず、意図通りに表示されます。
|
386
|
+
|
387
|
+
|
388
|
+
|
389
|
+
試したこと 3
|
390
|
+
|
391
|
+
ページネーションの関数に問題があるのかもしれないと思い、ページネーションの部分を
|
392
|
+
|
393
|
+
```php
|
394
|
+
|
395
|
+
<div class="pagination"><?php the_posts_pagination(array(
|
396
|
+
|
397
|
+
'screen_reader_text' => " "
|
398
|
+
|
399
|
+
)); ?></div>
|
400
|
+
|
401
|
+
```
|
402
|
+
|
403
|
+
に変えましたが、変化なしです。
|
3
追記2を追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -379,3 +379,7 @@
|
|
379
379
|
正 $query = new WP_QUERY($args);
|
380
380
|
|
381
381
|
ただ、$argsの'posts_per_page'を10、wordpressの1ページの表示する投稿数を10にすると?order=diff_subscribersをつけてもつけなくてもページネーションで2ページ目のリンクが表示され、クリックすると1ページ目と同じものが表示されます。
|
382
|
+
|
383
|
+
追記2
|
384
|
+
|
385
|
+
$argsの'posts_per_page'を30、wordpressの1ページの表示する投稿数を30の時は2ページ目のリンクは表示されず、意図通りに表示されます。
|
2
コードの修正と追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -202,7 +202,7 @@
|
|
202
202
|
|
203
203
|
|
204
204
|
|
205
|
-
$query = new WP_QUERY(
|
205
|
+
$query = new WP_QUERY($args);
|
206
206
|
|
207
207
|
echo "<table><tbody>";
|
208
208
|
|
@@ -367,3 +367,15 @@
|
|
367
367
|
```
|
368
368
|
|
369
369
|
URLに?order=diff_subscribersをつけた時だけ投稿が二重ループするようになりました。
|
370
|
+
|
371
|
+
|
372
|
+
|
373
|
+
追記
|
374
|
+
|
375
|
+
if (isset($_GET["order"]) && $_GET["order"] == "diff_subsribers") :の中のコードが間違っていました。
|
376
|
+
|
377
|
+
誤 $query = new WP_QUERY('cat='.$cat_id);
|
378
|
+
|
379
|
+
正 $query = new WP_QUERY($args);
|
380
|
+
|
381
|
+
ただ、$argsの'posts_per_page'を10、wordpressの1ページの表示する投稿数を10にすると?order=diff_subscribersをつけてもつけなくてもページネーションで2ページ目のリンクが表示され、クリックすると1ページ目と同じものが表示されます。
|
1
試したことを追記
test
CHANGED
File without changes
|
test
CHANGED
@@ -147,3 +147,223 @@
|
|
147
147
|
コードのコメントアウトに書いてある通り、get_postsを使ったループも試してみましたが、こちらも二重ループになってしまいます。
|
148
148
|
|
149
149
|
var_dump($query->post_count)とvar_dump(count($posts))はint(6)と表示されました。
|
150
|
+
|
151
|
+
|
152
|
+
|
153
|
+
試したこと 2
|
154
|
+
|
155
|
+
コードを以下のように書き換え、wordpressの設定で1ページに表示する投稿数を30に変更しました。
|
156
|
+
|
157
|
+
```php
|
158
|
+
|
159
|
+
<?php get_header(); ?>
|
160
|
+
|
161
|
+
<div class="container">
|
162
|
+
|
163
|
+
<div class="div-content">
|
164
|
+
|
165
|
+
<main>
|
166
|
+
|
167
|
+
<div class="div-post-sort">
|
168
|
+
|
169
|
+
<ul class="ul-post-sort">
|
170
|
+
|
171
|
+
<li><a href="<?php echo home_url(); ?>">ファン数</a></li>
|
172
|
+
|
173
|
+
<li><a href="<?php echo home_url()."?order=diff_subsribers"; ?>">急上昇</a></li>
|
174
|
+
|
175
|
+
<li><a href="<?php echo home_url()."?order=view_count"; ?>">再生回数</a></li>
|
176
|
+
|
177
|
+
</ul>
|
178
|
+
|
179
|
+
</div>
|
180
|
+
|
181
|
+
|
182
|
+
|
183
|
+
<?php
|
184
|
+
|
185
|
+
if (isset($_GET["order"]) && $_GET["order"] == "diff_subsribers") :
|
186
|
+
|
187
|
+
$args = array(
|
188
|
+
|
189
|
+
'posts_per_page' => 30,
|
190
|
+
|
191
|
+
'post_type' => 'post',
|
192
|
+
|
193
|
+
'offset' => 0,
|
194
|
+
|
195
|
+
'category_name' => "diff_subscribers",
|
196
|
+
|
197
|
+
'order' => 'DESC',
|
198
|
+
|
199
|
+
'orderby' => 'date'
|
200
|
+
|
201
|
+
);
|
202
|
+
|
203
|
+
|
204
|
+
|
205
|
+
$query = new WP_QUERY('cat='.$cat_id);
|
206
|
+
|
207
|
+
echo "<table><tbody>";
|
208
|
+
|
209
|
+
|
210
|
+
|
211
|
+
if ($query->post_count !== 0) :
|
212
|
+
|
213
|
+
while ($query->have_posts()) :
|
214
|
+
|
215
|
+
$query->the_post();
|
216
|
+
|
217
|
+
echo "<tr>".the_content()."</tr>";
|
218
|
+
|
219
|
+
endwhile;
|
220
|
+
|
221
|
+
endif;
|
222
|
+
|
223
|
+
echo "</tbody></table>";
|
224
|
+
|
225
|
+
|
226
|
+
|
227
|
+
/*
|
228
|
+
|
229
|
+
query_posts('cat='.$cat_id);
|
230
|
+
|
231
|
+
echo "<table><tbody>";
|
232
|
+
|
233
|
+
|
234
|
+
|
235
|
+
if (have_posts()) :
|
236
|
+
|
237
|
+
while (have_posts()) : the_post();
|
238
|
+
|
239
|
+
echo "<tr>".the_content()."</tr>";
|
240
|
+
|
241
|
+
endwhile;
|
242
|
+
|
243
|
+
endif;
|
244
|
+
|
245
|
+
echo "</tbody></table>";
|
246
|
+
|
247
|
+
*/
|
248
|
+
|
249
|
+
/*
|
250
|
+
|
251
|
+
$posts = get_posts(array(
|
252
|
+
|
253
|
+
'posts_per_page' => 10,
|
254
|
+
|
255
|
+
'offset' => 0,
|
256
|
+
|
257
|
+
'category' => $cat_id,
|
258
|
+
|
259
|
+
'order' => 'DESC',
|
260
|
+
|
261
|
+
'orderby' => 'date'
|
262
|
+
|
263
|
+
));
|
264
|
+
|
265
|
+
|
266
|
+
|
267
|
+
echo "<table><tbody>";
|
268
|
+
|
269
|
+
foreach ($posts as $post) : setup_postdata($post);
|
270
|
+
|
271
|
+
echo "<tr>".the_content()."</tr>";
|
272
|
+
|
273
|
+
endforeach;
|
274
|
+
|
275
|
+
echo "</tbody></table>";
|
276
|
+
|
277
|
+
*/
|
278
|
+
|
279
|
+
elseif (isset($_GET["order"]) && $_GET["order"] == "view_count") :
|
280
|
+
|
281
|
+
$cat_id = get_cat_ID("view_counts");
|
282
|
+
|
283
|
+
//未実装
|
284
|
+
|
285
|
+
else :
|
286
|
+
|
287
|
+
$args = array(
|
288
|
+
|
289
|
+
'posts_per_page' => 30,
|
290
|
+
|
291
|
+
'post_type' => 'post',
|
292
|
+
|
293
|
+
'offset' => 0,
|
294
|
+
|
295
|
+
'category_name' => "subscribers",
|
296
|
+
|
297
|
+
'order' => 'DESC',
|
298
|
+
|
299
|
+
'orderby' => 'date'
|
300
|
+
|
301
|
+
);
|
302
|
+
|
303
|
+
|
304
|
+
|
305
|
+
$query = new WP_QUERY($args);
|
306
|
+
|
307
|
+
echo "<table><tbody>";
|
308
|
+
|
309
|
+
var_dump($query->post_count);
|
310
|
+
|
311
|
+
if ($query->post_count !== 0) :
|
312
|
+
|
313
|
+
while ($query->have_posts()) : $query->the_post();
|
314
|
+
|
315
|
+
echo "<tr>".the_content()."</tr>";
|
316
|
+
|
317
|
+
endwhile;
|
318
|
+
|
319
|
+
wp_reset_postdata();
|
320
|
+
|
321
|
+
endif;
|
322
|
+
|
323
|
+
echo "</tbody></table>";
|
324
|
+
|
325
|
+
|
326
|
+
|
327
|
+
/*
|
328
|
+
|
329
|
+
$posts = get_posts($args);
|
330
|
+
|
331
|
+
echo "<table><tbody>";
|
332
|
+
|
333
|
+
foreach ($posts as $post) : setup_postdata($post);
|
334
|
+
|
335
|
+
echo "<tr>".the_content()."</tr>";
|
336
|
+
|
337
|
+
endforeach;
|
338
|
+
|
339
|
+
echo "</tbody></table>";
|
340
|
+
|
341
|
+
*/
|
342
|
+
|
343
|
+
endif;
|
344
|
+
|
345
|
+
?>
|
346
|
+
|
347
|
+
|
348
|
+
|
349
|
+
|
350
|
+
|
351
|
+
<div class="pagination"><?php online_the_posts_pagination(array(
|
352
|
+
|
353
|
+
'screen_reader_text' => " "
|
354
|
+
|
355
|
+
)); ?></div>
|
356
|
+
|
357
|
+
|
358
|
+
|
359
|
+
</main>
|
360
|
+
|
361
|
+
</div>
|
362
|
+
|
363
|
+
</div>
|
364
|
+
|
365
|
+
<?php get_footer(); ?>
|
366
|
+
|
367
|
+
```
|
368
|
+
|
369
|
+
URLに?order=diff_subscribersをつけた時だけ投稿が二重ループするようになりました。
|