ACFのselectフィールドの値を条件に、表示内容を変えたい
-
ユーザー情報のループを固定ページで表示することについて質問です。
[前提]
1. 学校のサイトで、学科ごとの紹介ページ(固定ページ)に配属している教員のリストを出力したい。
2. 各教員にWPのアカウントを与え、ユーザーのプロフィール編集ページで入力した値を上記ページに反映する。
3. Advanced Custom Fieldで、プロフィール編集ページに、配属学科名のSelectフィールドを追加し、各教員に選択してもらう。フィールド名は「users_department」。
※ Selectフィールドの選択肢は例として以下の通り、値とラベルで設定
dep1 : 〇〇学科
dep2 : □□学科
dep3 : △△学科[実現したいこと]
選択した値を元に、各学科の紹介ページに教員を振り分けて一覧で表示したい。現状作成したコードは以下になります。
全教員の一覧が表示されます。<div class="authors"> <?php $users = get_users( array('orderby'=>'ID','order'=>'ASC') ); ?> <?php foreach($users as $user) { $uid = $user->ID; ?> <div class="author-profile"> <p class="author-thumbanil"><?php echo get_avatar( $uid ,300 ); ?></p> <p class="author-name"><?php echo $user->display_name ; ?></p> <p class="author-description"><?php echo $user->user_description ; ?></p> <p><?php the_field('users_labo', 'user_'. $uid ); ?></p> </div> <?php } ?> </div>
これを各学科ページのテンプレートデータに配置し、条件式を加えて一覧を表示したいのですが、
ACFの値を使ってどのように記述するのかわかりません。
get_users()のパラメータでIDを元に除外等できるようですが、
ACFの項目を元にとなると、記述方法がわかりません。[やってみたこと]
こちらを参考に、if文で囲ってみましたがうまくいきません。
‘dep1’を指定すると全員表示され、それ以外を指定すると「該当する教員はいません。」と表示されます。<div class="authors"> <?php $users = get_users( array('orderby'=>'ID','order'=>'ASC') ); ?> <?php foreach($users as $user) { $uid = $user->ID; ?> <?php if( get_field('users_department') == 'dep1' ) { ?> <div class="author-profile"> <p class="author-thumbanil"><?php echo get_avatar( $uid ,300 ); ?></p> <p class="author-name"><?php echo $user->display_name ; ?></p> <p class="author-description"><?php echo $user->user_description ; ?></p> <p><?php the_field('users_labo', 'user_'. $uid ); ?></p> </div> <?php } else { ?> <p>該当する教員はいません。</p> <?php } ?> <?php } ?> </div>
お詳しい方、よろしければ解決法、ヒントなどご教授いただけないでしょうか。
よろしくお願いいたします。
3件の返信を表示中 - 1 - 3件目 (全3件中)
3件の返信を表示中 - 1 - 3件目 (全3件中)
- トピック「ACFのselectフィールドの値を条件に、表示内容を変えたい」には新たに返信することはできません。