■やりたいこと
ユーザ情報に登録されている、カスタムフィールドをキーにした複数条件の絞り込み検索
■表示ページ
固定ページ
■使用したプラグイン
Advanced Custom Fields
■検索用プラグイン
サーバーの仕様上、導入することができませんでした。
ユーザー登録時に、ACFで設定した下記カスタムフィールドに情報を入れ込んでいます。
必須項目としており、空データはありません。
また、登録ユーザー一覧は、固定ページに表示出来ております。
ACFにてカスタムフィールドを作成。
ラベル:名前
①出身国:country ←ラジオボタン
選択肢:日本,アメリカ,中国,フランス,他
②移動手段:transportation ←チェックボックス
選択肢:自家用車,自転車,バイク,徒歩,公共交通機関,他
上記2つを絞り込みのキーとして検索をさせたくて、下記フォームを作成。
<form role="search" method="get" id="searchform" action="<?php echo home_url(); ?>" > <label for="s"></label> <h2>出身国</h2> <input type="hidden" name="s" id="s" class="hiden" priceholder="検索" /> <input type="checkbox" name="country[]" value="日本" id="c05"><label for="c05">日本</label> <input type="checkbox" name="country[]" value="アメリカ" id="c04"><label for="c04">アメリカ</label> <input type="checkbox" name="country[]" value="中国" id="c03"><label for="c03">中国</label> <input type="checkbox" name="country[]" value="フランス" id="c02"><label for="c02">フランス</label> <input type="checkbox" name="country[]" value="他" id="c01"><label for="c01">他</label> <br><br> <h2>移動手段</h2> <input type="checkbox" name="trans[]" value="自家用車" id="l06"><label for="l06">自家用車</label> <input type="checkbox" name="trans[]" value="自転車" id="l05"><label for="l05">自転車</label> <input type="checkbox" name="trans[]" value="バイク" id="l04"><label for="l04">バイク</label> <input type="checkbox" name="trans[]" value="徒歩" id="l03"><label for="l03">徒歩</label> <input type="checkbox" name="trans[]" value="公共交通機関" id="l02"><label for="l02">公共交通機関</label> <input type="checkbox" name="trans[]" value="他" id="l01"><label for="l01">他</label> <div class="read_btn"><button type="submit" value="" id="submit" class=""/>この条件で検索する</button></div> </form>
受取側:search.php
<?php $s = $_GET['s']; $country = implode(',', $_GET['country']); $language = implode(',', $_GET['language']); if($country){ $meta_query[] = array( 'meta_query' => array( 'relation' => 'AND', array( 'key' => 'country', 'value' => $country, 'compare' => 'LIKE' ), array( 'key' => 'language', 'value' => $language, 'compare' => 'LIKE' ), ), ); } $args = array( 'meta_query' => $meta_query, 'role' => 'ユーザー権限限定のため', 's' => $s, 'posts_per_page' => -1 ); ?> <?php $wp_user_query = new WP_User_Query( $args ); #$users = $wp_user_query->get_results(); ?> <?php if ( ! empty( $wp_user_query->results ) ) :?> <?php foreach ( $wp_user_query->results as $user ) : $uid = $user->ID; $userData = get_userdata($uid); ?> <?php include /*表示のためのメタ取得インクルードファイル.php ?> <?php endforeach; ?> <?php else: ?> <p>ユーザーが見つかりません。</p> <?php endif;?>
それぞれ単一選択でしたら表示されますが、
国や移動手段を複数選択すると「ユーザーが見つかりません。」となってしまいます。
色々やってみたのですが、どうしてもうまくいかず、ご教授いただけますと助かります。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/07/11 09:40
2019/07/11 09:55
2019/07/11 10:01
2019/07/11 14:22
2019/07/12 01:12 編集
2019/07/12 00:54