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

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

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

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

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

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

<?php
  $args = [
    'post_type' => 'gourmet', /* カスタム投稿名 */
    'tax_query' => [
      [
        'taxonomy' => 'gourmet_category', /* タクソノミー名 */
        'field' => 'slug',
        'terms' => [ '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桁のカンマ区切りにする関数です。

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

注意点

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

コメントを残す

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

keyboard_control_keyTOP