サポート » テーマ » 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つも選択されていない地域に関して非表示する方法を、お詳しい方、よろしければ解決法、ヒントなどご教授いただけないでしょうか。
    何卒よろしくお願いいたします。

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

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

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

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

    (@natsumi201)

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

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

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • このトピックに返信するにはログインが必要です。