ショウジンブログ on Hatena

“お芝居をしないと、この社会では異邦人として扱われるほかない”

カスタムフィールドの値が同じユーザをカウントする@WordPress

ユーザ情報にカスタムフィールドを追加し、カスタムフィールドで同じ値を持つユーザ数をカウントする例です。

例えば、段位が存在するグループがあったとして、初段が何人、二段が何人という場合にカスタムフィールドで段位を用意し、各ユーザの段位の値から、それぞれの段位に何人いるかを出力します。

カスタムフィールドはACF(Advanced Custom Field)ではなく、日本語の解説記事はまだ多くないTypesを使っています。

Toolset Types

<tr><th>初段</th><td>
<?php
     $grade = get_users('meta_key=wpcf-grade&meta_value=1'); // カスタムフィールドのスラッグと値を指定
     $result = count($grade);
     echo $result;
?>
</td></tr>
<tr><th>二段</th><td>
<?php
     $grade = get_users('meta_key=wpcf-grade&meta_value=2'); // カスタムフィールドのスラッグと値を指定
     $result = count($grade);
     echo $result;
?>
</td></tr>

コードはhtmlが途中で終わってますが、ようするにテーブルで一行ごとに各段位を表示して、その人数を出力しています。

WordPressのget_users()関数を使ってユーザ情報を取得、オプションで取得したいカスタムフィールドのスラッグとその値を指定し、$gradeに代入しています。

get_users()関数で得られる返り値は配列型なのでPHPのcount()関数を使って指定したフィールドの値を持つユーザの数を取得することが出来ます。count()関数のオプションに$gradeを指定し、その結果を$resultに代入してechoしています。

以下が参考になりました。ありがとうございます。

ユーザフィールドで同じ値を持つユーザの数を取得

本格ビジネスサイトを作りながら学ぶ WordPressの教科書 Ver.4.x対応版

本格ビジネスサイトを作りながら学ぶ WordPressの教科書 Ver.4.x対応版