サポート » 使い方全般 » ユーザープロフィールに追加したカスタムフィールドでユーザーをフィルタリングして表示したい

  • 解決済 dadadada

    (@uedajirou2015)


    初めて質問させていただきます。どうぞよろしくお願いいたします。

    ユーザープロフィールに独自のフィールドを追加して、フィールドでチェックが入っているユーザー一覧を抽出したいと思っています。

    フィールドは、Advanced Custom Fieldsを使って追加しました。チェックボックスの選択肢は3つあります。

     フィールドタイプ:チェックボックス
     返り値:Value

    下記の情報を参考にmeta_keyとmeta_valueを使ってフィルタリングしようとしたのですが、うまくいきませんでした。

    WordPress ユーザー一覧をカスタムフィールドでソートして取得

    このように書きましたが、何も表示されません。

    $args = array(
      'meta_key' => 'area', //追加したカスタムフィールド名
      'meta_value' => '東京都' //カスタムフィールドの値
    );
    $users = get_users( $args );
    foreach ( $users as $user ) {
      echo '<span>' . esc_html( $user->user_email ) . '</span>';
    }

    wp_usermetaテーブルを覗いてみると、meta_valueが「a:1:{i:0;s:16:”〇〇〇〇”;}」のように保存されていました。この場合、’東京都’のように選択肢の値を単純にmeta_valueで指定するだけではだめなのでしょうか?

    カスタムフィールドでチェックが入っているユーザーのみを抽出したいです。
    どのように対応すればよいかご教示いただけるとありがたいです。
    よろしくお願いいたします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • こんにちは

    Advanced Custom Fields プラグインの、チェックボックスの値はシリアライズされた文字列で保存されるようなので、LIKE で比較するのではどうでしょうか?

    $args = get_users( array(
    	'meta_query' => array( array(
    		'key' => 'area',
    		'value' => '東京都',
    		'compare' => 'LIKE',
    	) ),
    ) );
    トピック投稿者 dadadada

    (@uedajirou2015)

    ご回答ありがとうございます。

    教えていただいた下記の条件を追加することで、
    ユーザーをフィルタリングできました。

    'meta_query' => array( array(
    	'key' => 'area',
    	'value' => '東京都',
    	'compare' => 'LIKE',
    ) ),

    誠にありがとうございました。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「ユーザープロフィールに追加したカスタムフィールドでユーザーをフィルタリングして表示したい」には新たに返信することはできません。