サポート » 使い方全般 » 異なる記事間で、同じキーのカスタムフィールドの値を足して表示したい

  • 解決済 tama-wp

    (@tama-wp)


    いつもお世話になります。

    WPで日記をつけているので、
    ついでに簡単なお小遣い帳もつけたいと思っています。
    項目は単純に

    支出:1000円
    収入:10000円

    というだけのものです。
    カスタムフィールドに

    キー    値
    deru 1000
    hairu 10000

    という感じで設定しています。(値に円という文字はありません)

    どうせなら、現在までの総支出と総収入をサイドバーに表示できればなぁと思っています。
    このカスタムフィールドは「日記」というカテゴリだけに設定していますので、「日記」内の「deru」の値を全て足して表示、「hairu」の値を全て足して表示したいです。

    よろしかったらアドバイスをお願いします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • モデレーター IKEDA Yuriko

    (@lilyfan)

    日記以外のカテゴリーで deru, hairu カスタムキーを使ってないことが保証されるならば、SQL コマンド一発で集計することが可能です。
    サイドバーの好きな場所に以下のコードを書いてみてください。

    <?php
    function wpja_sum_deru_hairu() {
      global $wpdb;
      $query = "SELECT meta_key, SUM(meta_value) AS sum FROM {$wpdb->postmeta} WHERE (meta_key = 'deru' OR meta_key = 'hairu') GROUP BY meta_key";
      $result = $wpdb->get_results($query);
      $values = array();
      foreach ((array) $result as $r) {
      	$values[$r->meta_key] = intval($r->sum);
      }
      printf('<div id="cashbook">支出: %1$d<br />収入: %2$d</div>', $values['deru'], $values['hairu']);
    }
    wpja_sum_deru_hairu();
    ?>

    カテゴリーごとに集計するとなると、もっと複雑な SQL を書いてやらないといけませんが、単純な合計ならばそんな難しくはありません。

    トピック投稿者 tama-wp

    (@tama-wp)

    lilyfan様

    ご回答頂き有り難うございました。
    早速、ご提示頂いたコードを導入してみました。
    思っていた通りに表示できました。感動です!!

    本当にありがとうございました。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「異なる記事間で、同じキーのカスタムフィールドの値を足して表示したい」には新たに返信することはできません。