カスタムフィールドに入力された値を自動計算して平均値を出す

WordPressのカスタムフィールドに入力した値の平均値を表示したい。そんな案件があり、PHPを使って実現したことがありましたので、ご紹介いたします。

同一カテゴリーの特定のカスタムフィールドを計算して、平均値を出すことも可能です。
私はそのPHPを外部ファイル化して、表示させたいページに読み込む使い方をしたりします。
口コミサイトや不動産サイトなど、点数や価格のカスタムフィールドを使う時に使えますね!

特定のカスタムフィールド平均値を計算する

詳しいことは忘れてしまったのですが…😅、いろんなサイトを調べまくり、結果以下のコードで計算できました。

「gourmet」というカスタム投稿の、「gourmet_category」というタクソノミーの、「lunch」というタームに属する記事の、「price」というカスタムフィールドに入力された値の平均値を出しています。

<?php $args = array(
  'post_type' => 'gourmet', /* カスタム投稿名 */
  'tax_query' => array(
    array(
      'taxonomy' => 'gourmet_category', /* タクソノミー名 */
      'field' => 'slug',
      'terms' => array( 'lunch' ), /* タームのスラッグ名 */
    )
  ),
  'posts_per_page' => -1
); ?>

<?php $my_posts = get_posts( $args );
  $n = 0;
  $sum = 0;
  foreach($my_posts as $p) {
    $sum  += get_post_meta($p->ID,'wpcf-price',true);
    $n++;
  }
  if ($n!=0) {
    $heikin_price = $sum / $n;
    echo number_format( $heikin_price );
  }
?>円

※「wpcf-」が付いているのは、「Toolset Types」で作成したカスタムフィールドだからです。

number_format();は、PHPの数値を3桁のカンマ区切りにする関数です。

もっと良い方法があるのかも知れませんが…、こんな感じでもできましたという例でした!

注意点

計算に使用するカスタムフィールドは、数字・数値タイプで作成すると良いです。
(※半角数字でしか計算できません)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です