カスタムフィールドの値で一覧を並び替えたい
-
とある教育機関のサイトを作成しています。
教員ごとにアカウントを作成し、投稿が可能な状態です。ユーザーのプロフィールページにて、
advanced custom fieldsで以下の項目を追加しています。————————————–
所属学科 (フィールド名 : users_dep)
セレクトタイプで所属する学科を選択する。職階 (フィールド名 : users_position)
セレクトタイプで自分の職階を選択する。
選択肢のバリューとラベルを以下のように設定。
pos01 : 教授
pos02 : 准教授
pos03 : 講師
pos04 : 助教
pos05 : 技師
pos06 : 該当無し
※上にいくほど位が高い
————————————–現状、学科ごとの固定ページを作成し、所属する教員一覧を以下のコードでループ出力させています。
<?php $users = []; $usersDep = get_field( 'users_dep' ); if ( $usersDep ) { $users = get_users( array( 'meta_key' => 'users_dep', 'meta_value' => $usersDep 'orderby' => 'ID', 'order' => 'ASC', ) ); } ?> <?php if ( $users ) { foreach ( $users as $user ) { $uid = $user->ID; ?> <div class="author_list"> <!-- 顔写真の出力 --> <?php echo get_avatar( $uid, 300 ); ?> <!-- 名前の出力 --> <?php echo $user->display_name; ?> <?php $field = get_field_object('users_position', 'user_' . $uid); $value = get_field('users_position', 'user_' . $uid); $label = $field['choices'][ $value ]; ?> <!-- 職階の出力 --> <?php echo $label; ?> </div> <?php } } else { ?> <p>該当する教員はいません。</p> <?php } ?>
やりたいこと
職員一覧を職階の位順に並べたく、以下のコードに変更し、
順番は希望通りに変更できましたが、
全学科の固定ページに同じループ内容が表示されてしまいます。<?php $users = []; $usersDep = get_field( 'users_dep' ); // 学科のバリューを取得 $usersPos = get_field( 'users_position' ); // 学科のバリューを取得 if ( $usersDep ) { $users = get_users( array( 'meta_key' => 'users_position', 'meta_value' => $usersPos, 'orderby' => 'meta_value', 'order' => 'ASC', ) ); } ?>
meta_keyとmeta_valueに学科の値を入れないと、学科ページごとに振り分けられないようですが、
職階の値も入れないと思い通りに並ばないといった状況です。お詳しい方、アドバイスをいただけないでしょうか。
よろしくお願いいたします。
2件の返信を表示中 - 1 - 2件目 (全2件中)
2件の返信を表示中 - 1 - 2件目 (全2件中)
- トピック「カスタムフィールドの値で一覧を並び替えたい」には新たに返信することはできません。