サポート » 使い方全般 » カスタムフィールドの値によってページあたりの表示件数を変更したい

  • 現在オリジナルテーマを作成中で、
    記事のページ順を指定して更にそのページの中で表示する件数を変えたいと思ってます。
    カスタムフィールドの値別に、例えば
    page_num = 1 は1記事
    page_num = 2 は2記事
    page_num = 4 は4記事
    という風に変えたいのですがどうすればよいかわかりません。
    宜しくお願いします。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • 例えば記事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つとも表示されて構わない?
    トピック投稿者 MAMMOTH17

    (@mammoth17)

    ありがとうございます。
    イメージとしては雑誌の記事のように
    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次元配列で実現できたのですが・・・

    すみません、頭が混乱してきました。ページの指定という話と、記事の数を指定する話との関係がよくわかりません。

    トピック投稿者 MAMMOTH17

    (@mammoth17)

    上手く説明できず申し訳ないです。
    post_per_page = 4
    とすると
    上記で言う1ページ目にも4記事が入ってしまいますし、
    post_per_page = 1にすると
    2,4ページ目には1つの記事しか表示されない。
    これを解決したいということです(^_^;)

    次のようなことを実現する必要があるだろうなと思って、考えてみましたが、難しそうですね。

    1. $p = 今から何ページ目を表示するのか確かめる。これを実現する方法が思いつかないです。
    2. $n = 一つ前のページまでの記事の合計数を計算する
    3. $m = ページ内に表示する記事の数を確かめる
    4. $n + 1 番目の記事から順に $m 個の記事を表示する。これは get_posts とループを使って、offset = $nposts_per_page = $m を指定すれば表示できますね。
5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「カスタムフィールドの値によってページあたりの表示件数を変更したい」には新たに返信することはできません。