サポート » 使い方全般 » WordPress ユーザー一覧をカスタムフィールドでソートして取得

  • 解決済 fufututu

    (@fufututu)


    ユーザー情報にAdvanced Custom Fieldsというプラグインを使用して項目を増やしました。
    その項目の中でユーザーはA.B.Cの地域から居住区を選択している状態です。

    今回実装したいのは、ユーザーの選択した居住区ごとにユーザー一覧を表示するということです。

    A地区
    ラジオボタンでA地区を選択したユーザー一覧
    B地区
    ラジオボタンでB地区を選択したユーザー一覧
    C地区
    ラジオボタンでC地区を選択したユーザー一覧

    おそらく実装が可能なのだと思うのですが、現在の書き方では表示されず困っています。

    
    <?php
    
    				$users = get_users( array(
    					'orderby' => 'meta_value',
    					'order' => 'ASC',
    					'meta_key' => 'area',
    				) );
    
    				if ( get_field('area') == "aaa"): ?>
    				
    			  <!--投稿者一覧を表示-->
    				<?php $users =get_users( array('orderby'=>ID,'order'=>ASC) );
    
    			echo '<div class="writers">';
    				
    
    				foreach($users as $user):
    
    					$uid = $user->ID;
    					$userData = get_userdata($uid);
    
    					echo '<div class="writer-profile">';
    						echo '<div class="profiletxt">';
    									echo '<p class="name">'.$user->display_name.'</p>';		
    						echo '</div>';
    					echo '</div>';
    	
    				endforeach;
     
            echo '</div>';?>
    			<?php else : ?>
    				<p>どの地域にも属していません。</p>
    			<?php endif;?>
    

    現在のif文を外したforeach文の表示は問題ないのですが、if文に入れこすると「どの地域にも属していません。」が表示されてしまします。

    カスタムフィールドの取得部分の書き方がよくないと思うのですが、どのようにユーザー情報を取得すればよいのか、そもそもこの書き方がいけないのかお教えいただきたいです。

    よろしくお願いいたします。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • gblsm

    (@gblsm)

    get_field() は投稿のカスタムフィールドを取得するのが普通なので、ユーザーの場合は特別な書き方になるそうです。

    Get values from a user
    https://www.advancedcustomfields.com/resources/how-to-get-values-from-a-user/

    • この返信は6年前にgblsmが編集しました。
    ishitaka

    (@ishitaka)

    こんにちは

    get_users() の meta_key および meta_value パラメータを使用するのはどうでしょうか。

    例:

    foreach ( array( 'A', 'B', 'C') as $area ) {
    
    	echo "<h3>$area 地区</h3>\n";
    
    	$users = get_users( array(
    		'orderby' => 'ID',
    		'order' => 'ASC',
    		'meta_key' => 'area',	// ACF で指定したフィールド名
    		'meta_value' => $area,	// フィールドの値
    	) );
    
    	(省略)
    }
    トピック投稿者 fufututu

    (@fufututu)

    ご回答いただきありがとうございます。
    パラメータを使用するということで早速試してみたいと思います。

    まだまだ勉強不足の中、このように教えていただきありがとうございました。

    ishitakaさんの記事は何度か読ませていただいたことがあります。
    分かりやすく説明がなされており勉強になります。
    今後もちょくちょく閲覧させていただきたいと思います!

    トピック投稿者 fufututu

    (@fufututu)

    無事、希望通り表示されました。
    ありがとうございました。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「WordPress ユーザー一覧をカスタムフィールドでソートして取得」には新たに返信することはできません。