カスタムフィールドに入力された値を自動計算して平均値を出す
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桁のカンマ区切りにする関数です。
もっと良い方法があるのかも知れませんが…、こんな感じでもできましたという例でした!
注意点
計算に使用するカスタムフィールドは、数字・数値タイプで作成すると良いです。
(※半角数字でしか計算できません)