Advanced Custom Field便利ですねぇ
これがあれば、Wordpressで簡単な求人サイトや不動産サイトのマッチングサイトみたいなものが作れてしまいますからね。
今日は複合検索の部分で、ハマったのでフォームの複数の値から、Advanced Custom Fieldに登録されている情報を検索する時のソースをご案内します。
フォームの複数条件からAdvancedCutomFieldの登録情報を検索するソースサンプル
if(isset($_GET['select_city'])){
$select_city = htmlspecialchars($_GET['select_city']);
$search_array = $search_array + array(
'key'=>'市区町村',
'value'=>$select_city,
'compare'=>'LIKE'
);
}
if(isset($_GET['working_form'])){
$working_form = htmlspecialchars($_GET['working_form']);
$search_array = $search_array + array(
'key'=>'雇用形態',
'value'=>$working_form,
'compare'=>'LIKE'
);
}
if(isset($_GET['license'])){
$license = $_GET['license'];
$license_imp = implode(" ", $_GET['license']);
$search_array = $search_array + array(
'key'=>'職種',
'value'=>$license,
'compare'=>'IN'
);
}
if(isset($_GET['facility_form'])){
$facility_form = $_GET['facility_form'];
$facility_form_imp = implode(" ", $_GET['facility_form']);
$search_array = $search_array + array(
'key'=>'施設形態',
'value'=>$facility_form,
'compare'=>'IN'
);
}
if(isset($_GET['characteristic'])){
$characteristic = $_GET['characteristic'];
$characteristic_imp = implode(" ", $_GET['characteristic']);
$search_array = $search_array + array(
'key'=>'特徴',
'value'=>$characteristic,
'compare'=>'IN'
);
}
if(isset($_GET['freeword'])){
$freeword = htmlspecialchars($_GET['freeword']);
$search_array = $search_array + array(
'key'=>'検索用フリーワード',
'value'=>$freeword,
'compare'=>'LIKE'
);
}
//複合検索フォームから情報を検索する
$wp_query = new WP_Query();
$my_posts = array(
'posts_per_page' => 10, //記事表示数
'paged' => $paged,
'orderby' => 'date',//キーの指定
'order' => 'DESC',//並び順の指定
'meta_query' => array(
$search_array,
'relation'=>'AND'
)
);
$wp_query->query( $my_posts );
$get_num = $wp_query->found_posts;//該当件数取得
if( $wp_query->have_posts() ){
while( $wp_query->have_posts() ){
$wp_query->the_post();
}