• お世話になります。
    カスタムフィールドを使い以下のように表示したいと思っています。

    青森産のりんごの一覧ページ

    りんごA  200円
    りんごC  300円

    合計  500円

    カスタム投稿でりんごを投稿していきその中にカスタムフィールドで価格の数字を入力し、産地(カスタムタクソノミー)などでも分類別一覧表示させたいと考えています。

    りんごAは、記事のタイトルしています。
    価格のカスタムフィールドキーは、「cfprice]です。

    get_field('cfprice')
    で値を取得するのはわかったのですが表示されている記事の価格の合計のやり方がわかりません。記述の仕方などよろしくお願いします。

    [管理者コメント: タイトルが空だったので適当なタイトルを設定しました]

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • モデレーター Takayuki Miyoshi

    (@takayukister)

    ※ 「【重要】 お読みください」はフォーラム管理上のお知らせを掲載するカテゴリーですので質問のトピックには使用されないようお願いします。質問のトピックを作成される際には最もあてはまるカテゴリーを選択してください。本件は「使い方全般」カテゴリーに移動します。

    トピック投稿者 happy789

    (@happy789)

    すみません。ご迷惑をおかけました。
    文章を書いてカテゴリーの選択中にエンターを押してしまい投稿されてしまいました。
    以後気をつけます。カテゴリーが移動されていますのでそのまま続けさせていただきます。

    ループで出されたカスタムフィールド値の数字の合計の記述の仕方がわかる方、よろしくお願いします。

    get_field() って、よくわからないのですが…

    foreach (リンゴA~リンゴCの条件) {
        $price_data[] = get_field('cfprice');
    }
    $sum = array_sum($price_data);

    それとも、データベースに保存するんでしょうか?

    補足すると、get_field()はプラグイン「Advanced Custom Field」独自のフィールド値取得のための関数です。

    トピック投稿者 happy789

    (@happy789)

    kjmtshさん witch_doktorさん ありがとうございます。
    (リンゴA~リンゴCの条件)の記述がわからず悩んでいます。

    kjmtshさんの方法をヒントに合計欄表示のため、もう一度ループを持ってきて表示させてみると合計が表示されました。

    <?php query_posts($query_string); if(have_posts()): while(have_posts()): the_post(); ?>
    <?php $sprice_data[] = get_field('cfprice') ; ?>
    <?php endwhile; endif; ?>
    <?php
    print array_sum($sprice_data);
    ?>

    かなり強引な記述で正しいのかわかりません。
    もっと簡単な方法があればわかる方お手数ですがお教えください。

    「りんごA〜C」というのは、「そのアーカイブページに表示されるすべての投稿」という意味でいいんですかね? だとすれば、これでいいでしょう。

    クエリを変えているわけではないので、

    query_posts($query_string);

    の部分は外しても期待どおり動くのではないですか?

    Plugin Directory でリポジトリを覗き、ドキュメントを読みました。とてもきれいなコードで、doc string もきちんとしていているし、API ドキュメントもわかりやすいものでした。

    さて、本題ですが、2 度目のループは必要ないのではないでしょうか。1 度目のループのときに同じことができませんか? それがどうなっているか、ここに出すことができますか?

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • トピック「カスタムフィールドの価格の合計」には新たに返信することはできません。