例えば記事A,B,Cがあるとして、Aがpage_num=1、Bがpage_num=2、Cがpage_num=4だったら、1ページに幾つの記事を表示するのでしょう。ちょっと想像がつかないのですが、どのように表示なさりたいのか、もう少し教えて頂けませんか?
- A,B,Cの順なら、Aが先頭なら最初はAだけですが、次のページではBとCが表示される?
- C,B,Aの順なら、最初のページにC,B、Aが3つとも表示されて構わない?
ありがとうございます。
イメージとしては雑誌の記事のように
1ページ目、A記事のみ。
2ページ目、B,C記事。
3ページ目、D記事のみ。
4ページ目、E,F,G,H記事。
・・・・という感じです。
ページの指定は2次元配列で実現できたのですが・・・
記事にカスタムフィールド page_num を付けて、それに記事の数を入れておくのですよね。MAMMOTH17さんが示して頂いた例の場合:
1ページ目、A記事のみ。
2ページ目、B,C記事。
3ページ目、D記事のみ。
4ページ目、E,F,G,H記事。
記事Aはpage_num=1ですね。2ページ目は記事Bにpage_num=2を付けるのだと思いますが、もしC記事にpage_num=3が付いていたら記事Bのpage_num=2と違ってしまいます。その時は記事Bのpage_numを優先する、という仕掛けになさりたいのでしょうか?
ページの指定は2次元配列で実現できたのですが・・・
すみません、頭が混乱してきました。ページの指定という話と、記事の数を指定する話との関係がよくわかりません。
上手く説明できず申し訳ないです。
post_per_page = 4
とすると
上記で言う1ページ目にも4記事が入ってしまいますし、
post_per_page = 1にすると
2,4ページ目には1つの記事しか表示されない。
これを解決したいということです(^_^;)
次のようなことを実現する必要があるだろうなと思って、考えてみましたが、難しそうですね。
$p =
今から何ページ目を表示するのか確かめる。これを実現する方法が思いつかないです。
$n =
一つ前のページまでの記事の合計数を計算する
$m =
ページ内に表示する記事の数を確かめる
$n + 1
番目の記事から順に $m
個の記事を表示する。これは get_posts
とループを使って、offset = $n
と posts_per_page = $m
を指定すれば表示できますね。