サポート » テーマ » 出力したユーザー一覧を五十音順に並び替え

  • 解決済 natsumi201

    (@natsumi201)


    いつもお世話になっております。

    ユーザー情報を固定ページ(テンプレートファイル)の表示について質問です。

    サイトで、会員(ユーザー)を地域別に振り分けたリストを作成しました。
    会員にWPのアカウントを与え、ユーザーのプロフィール編集ページで入力した値を上記ページに反映しています。
    Advanced Custom Fieldで、プロフィール編集ページに、地域のSelectフィールドを追加し、会員に選択してもらい、地域別に振り分けを行っています。

    ※Selectフィールドの選択肢は例として以下の通り、値とラベルで設定
    data1 : 〇〇市
    data2 : □□市
    data3 : △△市
    data4 : ■■市

    <?php
    $areas = array(
        'data1' => '〇〇市',
        'data2' => '□□市',
        'data3' => '△△市',
        'data4' => '■■市'
    );
    ?>
    <ul class="listreset area_link" id="kaiin_naviarea">
    <?php foreach ( $areas as $key => $value ):
    // エリア別にユーザーを取得する
    $users = get_users( array('role' => 'Author','meta_key' => 'user_address1', 'meta_value' => $key));
    if ( empty( $users ) ) continue; ?>
    <li><a href="#<?php echo $key; ?>"><span><?php echo $value; ?>を見る</span></a></li>
    <?php endforeach; ?>
    </ul>
    
    <?php foreach ( $areas as $key => $value ):
    // エリア別にユーザーを取得する
    $users = get_users(
        array(
            'orderby'    => 'ASC',
            'meta_key'   => 'user_address1',
            'role' => 'Author',
            'meta_value' => $key
        )
    );
    if ( empty( $users ) ) continue;
    ?>
    <div class="contbloc">
    <h3 class="cont_title" id="<?php echo $key; ?>">
    <?php echo $value; ?>(<?php echo count( $users ); ?>社)</h3>
    
    <div class="js-scrollable scroll-hint is-scrollable">
    <table class="tabledata">
    <tr><th>会社名</th><th>代表者</th></tr>
    
    <?php if ( $users ) { ?>
    <?php foreach ( $users as $user ) {
        $uid = $user->ID; ?>
    
    <tr>
    <td class="data_name1"><a href="<?php echo esc_url( home_url() ); ?>/member/<?php echo $uid; ?>"><?php if($user->last_name != '') {echo $user->last_name ;}else { echo '会社名(必須)が入力されていません';} ?></a></td>
    <td><?php the_field('user_name', $user); ?></td>
    </tr>
    <?php } ?>
    
    <?php } else { ?>
    <?php } ?>
    </table>
    </div><!--scroll-hint-->
    </div><!--contbloc-->
    <div class="goback"><a href="#kaiin_naviarea">ページ上部へ戻る</a></div>
    <?php endforeach; ?>

    地域別に振り分けを行い、さらに振り分けたユーザーを会社名の五十音順で並び替えたいと思っています。
    新たに会社名のふりがなを入力するカスタムフィールドを追加しました。フィールド名【kana】。
    いろいろ試しましたが、表示させることが出来ずにいます。
    よろしければ解決法、ヒントなどご教授いただけないでしょうか。
    よろしくお願いいたします。

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

    こちらのトピックが参考になると思います。

    サンプル コードを書いてみました。

    $users = get_users( array(
    	'meta_key'   => 'kana',
    	'orderby'    => 'meta_value',
    	'order'      => 'ASC',
    	'role'       => 'author',
    	'meta_query' => array( array(
    		'key'     => 'user_address1',
    		'value'   => $key,
    		'compare' => '=',
    	) ),
    ) );

    マルチポスト
    https://teratail.com/questions/qxh0hls39by41z

    マルチポスト先に回答が付いているようなので、こちらは閉じてください。

    トピック投稿者 natsumi201

    (@natsumi201)

    おはようございます。
    サンプルコードまで、ありがとうございます。
    大変お手数おかけいたしました。
    無事実装することが出来ました。ありがとうございました!

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「出力したユーザー一覧を五十音順に並び替え」には新たに返信することはできません。