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