サポート » テーマ » ACFのselectフィールドの条件分岐

  • 解決済 natsumi201

    (@natsumi201)


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

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

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

    <?php
    $areas = array(
        'data1' => '〇〇市',
        'data2' => '□□市',
        'data3' => '△△市',
        'data4' => ■■市'
    );
    ?>
    <?php foreach ( $areas as $key => $value ):
    echo "<h3 class=cont_title>". $value . "</h3>";
    // エリア別にユーザーを取得する
    $users = get_users(
        array(
            'orderby'    => 'ID',
            'order'      => 'ASC',
            'meta_key'   => 'user_address1',
            'exclude'    =>  array(1,2),
            'meta_value' => $key
        )
    ); ?>
    <div class="js-scrollable scroll-hint is-scrollable contbloc" style="position: relative;overflow: auto;">
    <table class="tabledata">
    <tr><th>商号</th><th>代表者</th><th>住所</th><th>TEL</th><th>詳細</th></tr>
    <?php if ( $users ) { ?>
    <?php foreach ( $users as $user ) {$uid = $user->ID; ?>
    <tr>
    <td class="data_name"><a href="<?php echo get_bloginfo("url") . '/?author=' . $uid ?>"><?php echo $user->last_name ; ?></a></td>
    <td><?php the_field('user_name', $user); ?></td>
    <td><?php the_field('user_address2', $user); ?></td>
    <td><?php the_field('user_tel', $user); ?></td>
    <td><a class="icon_link" href="<?php echo get_bloginfo("url") . '/?author=' . $uid ?>"><i class="icon-school"></i></a></td>
    </tr>
    <?php } ?>
    
    <?php } else { ?>
    <?php } ?>
    </table>
    </div><!--scroll-hint-->
    <?php endforeach; ?>

    現在、何とか振り分けはできた状態です。
    1つも選択されていない地域に関して非表示する方法を、お詳しい方、よろしければ解決法、ヒントなどご教授いただけないでしょうか。
    何卒よろしくお願いいたします。

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

    こんな感じではどうでしょうか。

    // エリア別にユーザーを取得する
    $users = get_users(
    ~省略~
    ); ?>

    // エリア別にユーザーを取得する
    $users = get_users(
    ~省略~
    );
    if ( empty( $users ) ) continue;
    ?>
    トピック投稿者 natsumi201

    (@natsumi201)

    返事が遅くなり、申し訳ありません。

    無事希望通りの表示になりました!
    本当にありがとうございました!

    トピック投稿者 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】。
    いろいろ試しましたが、表示させることが出来ずにいます。
    よろしければ解決法、ヒントなどご教授いただけないでしょうか。
    よろしくお願いいたします。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「ACFのselectフィールドの条件分岐」には新たに返信することはできません。