Hướng dẩn thêm câu lệnh query để search
Thêm đoạn này vào
add_filter( 'pre_get_posts','bogtintonghop_custom_search_filter'); function bogtintonghop_custom_search_filter( $query ) { if( $query->is_search && !is_admin() ) // { if( isset($_GET['s'] ) ) { $query->set( 'post_type', array( 'nha_dat' ) );// ô search text. } if( $query->is_main_query() ) { } } return $query; }
Thêm đoạn này vào trong if $query->is_main_query()
$args[] = array( 'relation' => 'AND' ); if( isset( $_GET[ 'loai_nha_dat' ] ) && $_GET[ 'loai_nha_dat' ] != 'all' ) { $args[] = array( 'taxonomy' => 'loai_nha_dat', 'field' => 'slug', 'terms' => $_GET['loai_nha_dat'] ); } if( isset( $_GET[ 'tinh_tp' ] ) && $_GET[ 'tinh_tp' ] != 'all' && $_GET[ 'xa_huyen' ] == 'all') { $args[] = array( 'taxonomy' => 'dia_diem', 'field' => 'slug', 'terms' => $_GET['tinh_tp'] ); } if( isset( $_GET[ 'xa_huyen' ] ) && $_GET[ 'xa_huyen' ] != 'all') { $args[] = array( 'taxonomy' => 'dia_diem', 'field' => 'slug', 'terms' => $_GET['xa_huyen'] ); } $query->set( 'tax_query', $args );
đoạn này xử lý các taxonomy.
Tiếp tục thêm đoạn code này vào để search các field
if( isset( $_GET['huong_nha'] ) || isset( $_GET['giathap'] ) || isset( $_GET['giacao'] ) ) { $meta_query = array( 'relation' => 'AND' ); // Hướng nhà if( isset( $_GET[ 'huong_nha' ] ) && $_GET[ 'huong_nha' ] != 'all' ) { $meta_query[] = array( 'key' => 'huong', 'value' => $_GET['huong_nha'], 'compare' => '=' ); } // Giá if( isset( $_GET[ 'giathap' ] ) && $_GET[ 'giathap' ] != 0 ) { $meta_query[] = array( 'key' => 'price', 'value' => $_GET[ 'giathap' ], 'type' => 'numeric', 'compare' => '>=' ); } if( isset( $_GET[ 'giacao' ] ) && $_GET[ 'giacao' ] !=0 ) { $meta_query[] = array( 'key' => 'price', 'value' => $_GET[ 'giacao' ], 'type' => 'numeric', 'compare' => '<=' ); } $query->set( 'meta_query', $meta_query ); }
Tổng kết code search ngắn gọn chỉ có thể này thôi
add_filter( 'pre_get_posts','bogtintonghop_custom_search_filter'); function bogtintonghop_custom_search_filter( $query ) { if( $query->is_search && !is_admin() ) { if( isset($_GET['s'] ) ) { $query->set( 'post_type', array( 'nha_dat' ) );// box text search } if( $query->is_main_query() ) { $args[] = array( 'relation' => 'AND' ); if( isset( $_GET[ 'loai_nha_dat' ] ) && $_GET[ 'loai_nha_dat' ] != 'all' ) { $args[] = array( 'taxonomy' => 'loai_nha_dat', 'field' => 'slug', 'terms' => $_GET['loai_nha_dat'] ); } if( isset( $_GET[ 'tinh_tp' ] ) && $_GET[ 'tinh_tp' ] != 'all' && $_GET[ 'xa_huyen' ] == 'all') { $args[] = array( 'taxonomy' => 'dia_diem', 'field' => 'slug', 'terms' => $_GET['tinh_tp'] ); } if( isset( $_GET[ 'xa_huyen' ] ) && $_GET[ 'xa_huyen' ] != 'all') { $args[] = array( 'taxonomy' => 'dia_diem', 'field' => 'slug', 'terms' => $_GET['xa_huyen'] ); } $query->set( 'tax_query', $args ); if( isset( $_GET['huong_nha'] ) || isset( $_GET['giathap'] ) || isset( $_GET['giacao'] ) ) { $meta_query = array( 'relation' => 'AND' ); // Hướng nhà if( isset( $_GET[ 'huong_nha' ] ) && $_GET[ 'huong_nha' ] != 'all' ) { $meta_query[] = array( 'key' => 'huong', 'value' => $_GET['huong_nha'], 'compare' => '=' ); } // Giá if( isset( $_GET[ 'giathap' ] ) && $_GET[ 'giathap' ] != 0 ) { $meta_query[] = array( 'key' => 'price', 'value' => $_GET[ 'giathap' ], 'type' => 'numeric', 'compare' => '>=' ); } if( isset( $_GET[ 'giacao' ] ) && $_GET[ 'giacao' ] !=0 ) { $meta_query[] = array( 'key' => 'price', 'value' => $_GET[ 'giacao' ], 'type' => 'numeric', 'compare' => '<=' ); } // đoạn code nào dành cho bạn nào tạo giá trong khoảng VD: 1ty - 2ty // if( isset( $_GET[ 'gia' ] ) && $_GET[ 'gia' ] != 'all' ) { // $price = explode( "-", $_GET['gia'] ); // if( $_GET[ 'nhu-cau' ] == 'mua-ban' ) { // $key = 'real_estate_price_for_sell'; // } else if( $_GET[ 'nhu-cau' ] == 'thue' ) { // $key = 'real_estate_price_for_rent'; // } // $meta_query[] = array( // 'key' => $key, // 'value' =>array( floatval( $price[0] ), floatval( $price[1] ) ), // 'type' => 'numeric', // 'compare' => 'BETWEEN' // ); // } $query->set( 'meta_query', $meta_query ); } } } return $query; }
Các bạn cài plugin All-in-One WP Migration để giải nén source ra nhé. download tại đây
Nguồn: https://blogtintonghop.com/huong-dan-tao-bo-search-bat-dong-san-wordpress-p-3/
Không có nhận xét nào:
Đăng nhận xét