Не работает фильтрация по полям Wordpress

183
21 марта 2018, 05:56

Есть сайт где должна производится фильтрация по определенным полям (площадь дома, его этажность, материалы). Изначально все работало хорошо, но после изменений в некоторых полях фильтрация не работает. Что может быть?

Здесь происходит выбор опций, которые подгружаются с плагина Advanced Custom Fields PRO:

<div class="thumbnail sidebar">
                        <h3>Поиск проекта</h3>
                        <form method="post" action="/rezultaty-poiska.html">
                        <ul>
                            <li><hr></li>
                            <li>
                                <label>Выбрать тип дома:
                                    <select name="materials" id="">                                 
                                        <option <?php if ($_POST['materials'] == 'all') {echo 'selected'; } ?> value="all">Все</option>
                                        <option <?php if ($_POST['materials'] == 'kamenuy') {echo 'selected'; } ?> value="kamenuy">Камень</option>
                                        <option <?php if ($_POST['materials'] == 'wood') {echo 'selected'; } ?> value="wood">Дерево</option>    
                                        <option <?php if ($_POST['materials'] == 'karkas') {echo 'selected'; } ?> value="karkas">Каркас</option>
                                        <option <?php if ($_POST['materials'] == 'stone') {echo 'selected'; } ?> value="stone">Кирпич</option>  
                                        <option <?php if ($_POST['materials'] == 'monolit') {echo 'selected'; } ?> value="monolit">Монолит</option>
                                        <option <?php if ($_POST['materials'] == 'keramika') {echo 'selected'; } ?> value="keramika">Теплая керамика</option>
                                        <option <?php if ($_POST['materials'] == 'beton') {echo 'selected'; } ?> value="beton">Бетон</option>
                                    </select>
                                </label>
                            </li>
                            <li>
                                <label>Материал стен:
                                    <select name="steny" id="">                                 
                                        <option <?php if ($_POST['steny'] == 'all') {echo 'selected'; } ?> value="all">Все</option>
                                        <option <?php if ($_POST['steny'] == 'kamen') {echo 'selected'; } ?> value="kamen">Каменные</option>
                                        <option <?php if ($_POST['steny'] == 'derevo') {echo 'selected'; } ?> value="derevo">Деревянные</option>
                                        <option <?php if ($_POST['steny'] == 'karakas') {echo 'selected'; } ?> value="karakas">Каркасные</option>
                                    </select>
                                </label>
                            </li>

                            <li>
                                <label>Этажность:
                                    <select name="floors" id="">
                                        <option <?php if ($_POST['floors'] == 'all') {echo 'selected'; } ?> value="all">Все</option>                                    
                                        <option <?php if ($_POST['floors'] == 'one') {echo 'selected'; } ?> value="one">1 этаж</option>
                                        <option <?php if ($_POST['floors'] == 'two') {echo 'selected'; } ?> value="two">2 этажa</option>                        
                                        <option <?php if ($_POST['floors'] == 'three') {echo 'selected'; } ?> value="three">3 этажа</option>
                                    </select>
                                </label>
                            </li>
                            <li>
                                <label>Площадь:
                                    <select name="square" id="">
                                        <option <?php if ($_POST['square'] == 'one') {echo 'selected'; } ?> value="all">Все</option>                                    
                                        <option <?php if ($_POST['square'] == 'from100') {echo 'selected'; } ?> value="from100">до 100 м <sup>2</sup></option>
                                        <option <?php if ($_POST['square'] == 'from200') {echo 'selected'; } ?> value="from200">от 100 - 200 м <sup>2</sup></option>                        
                                        <option <?php if ($_POST['square'] == 'from300') {echo 'selected'; } ?> value="from300">до 300 м <sup>2</sup></option>
                                        <option <?php if ($_POST['square'] == 'from400') {echo 'selected'; } ?> value="from300">до 400 м <sup>2</sup></option>
                                        <option <?php if ($_POST['square'] == 'from500') {echo 'selected'; } ?> value="from500">до 500 м <sup>2</sup></option>
                                        <option <?php if ($_POST['square'] == 'at500') {echo 'selected'; } ?> value="at500">от 500 м <sup>2</sup></option>
                                    </select>
                                </label>
                            </li>

                            <!--<li>
                                <label>Бюджет строительства:
                                    <select name="square" id="">
                                        <option <?php if ($_POST['square'] == 'one') {echo 'selected'; } ?> value="all">Все</option>
                                        <option <?php if ($_POST['square'] == 'at500') {echo 'selected'; } ?> value="at500">до 1 млн.  </option>
                                        <option <?php if ($_POST['square'] == 'at500') {echo 'selected'; } ?> value="at500">до 2 млн.  </option>
                                        <option <?php if ($_POST['square'] == 'at500') {echo 'selected'; } ?> value="at500">до 3 млн.  </option>
                                        <option <?php if ($_POST['square'] == 'at500') {echo 'selected'; } ?> value="at500">выше 3 млн.  </option>
                                    </select>
                                </label>
                            </li>-->

                            <li>
                                <label>Стиль:
                                    <select name="style" id="">
                                        <option <?php if ($_POST['style'] == 'one') {echo 'selected'; } ?> value="all">Все</option>                                 
                                        <option <?php if ($_POST['style'] == 'classic' ) {echo 'selected'; } ?> value="classic">Классический</option>
                                        <option <?php if ($_POST['style'] == 'rait' ) {echo 'selected'; } ?> value="rait">Райт</option>
                                        <option <?php if ($_POST['style'] == 'modrn' ) {echo 'selected'; } ?> value="modrn">Модерн</option>
                                        <option <?php if ($_POST['style'] == 'victoryan' ) {echo 'selected'; } ?> value="victoryan">Викторианский</option>
                                        <option <?php if ($_POST['style'] == 'towers' ) {echo 'selected'; } ?> value="towers">Замковый</option>
                                        <option <?php if ($_POST['style'] == 'shale' ) {echo 'selected'; } ?> value="shale">Шале</option>
                                        <option <?php if ($_POST['style'] == 'renesans' ) {echo 'selected'; } ?> value="renesans">Ренесанс</option>
                                        <option <?php if ($_POST['style'] == 'gotic' ) {echo 'selected'; } ?> value="gotic">Готический</option>
                                        <option <?php if ($_POST['style'] == 'barokko' ) {echo 'selected'; } ?> value="barokko">Барокко</option>
                                        <option <?php if ($_POST['style'] == 'rokkoko' ) {echo 'selected'; } ?> value="rokkoko">Рококо</option>
                                        <option <?php if ($_POST['style'] == 'hitec' ) {echo 'selected'; } ?> value="hitec">Хай-тек</option>
                                        <option <?php if ($_POST['style'] == 'scandinavsky' ) {echo 'selected'; } ?> value="scandinavsky">Скандинавский</option>
                                        <option <?php if ($_POST['style'] == 'rusland' ) {echo 'selected'; } ?> value="rusland">Русский</option>
                                        <option <?php if ($_POST['style'] == 'italic' ) {echo 'selected'; } ?> value="italic">Итальянский</option>
                                        <option <?php if ($_POST['style'] == 'finn' ) {echo 'selected'; } ?> value="finn">Финский</option>
                                        <option <?php if ($_POST['style'] == 'rustical' ) {echo 'selected'; } ?> value="rustical">Рустикальный</option>
                                        <option <?php if ($_POST['style'] == 'ultransov' ) {echo 'selected'; } ?> value="ultransov">Ультрасовременный</option>
                                        <option <?php if ($_POST['style'] == 'usa' ) {echo 'selected'; } ?> value="usa">Американский</option>
                                        <option <?php if ($_POST['style'] == 'sredizem' ) {echo 'selected'; } ?> value="sredizem">Средиземноморский</option>
                                        <option <?php if ($_POST['style'] == 'nemec' ) {echo 'selected'; } ?> value="nemec">Немецкий</option>
                                        <option <?php if ($_POST['style'] == 'colony' ) {echo 'selected'; } ?> value="colony">Колониальный</option>
                                        <option <?php if ($_POST['style'] == 'fahver' ) {echo 'selected'; } ?> value="fahver">Фахверк</option>
                                        <option <?php if ($_POST['style'] == 'asian' ) {echo 'selected'; } ?> value="asian">Восточный</option>
                                        <option <?php if ($_POST['style'] == 'shato' ) {echo 'selected'; } ?> value="shato">Шато</option>
                                        <option <?php if ($_POST['style'] == 'ampir' ) {echo 'selected'; } ?> value="ampir">Ампир</option>
                                        <option <?php if ($_POST['style'] == 'alpian' ) {echo 'selected'; } ?> value="alpian">Альпийский</option>
                                        <option <?php if ($_POST['style'] == 'provance' ) {echo 'selected'; } ?> value="provance">Прованс</option>
                                        <option <?php if ($_POST['style'] == 'country' ) {echo 'selected'; } ?> value="country">Кантри</option>
                                        <option <?php if ($_POST['style'] == 'english' ) {echo 'selected'; } ?> value="english">Английский</option>
                                        <option <?php if ($_POST['style'] == 'canadian' ) {echo 'selected'; } ?> value="canadian">Канадский</option>
                                        <option <?php if ($_POST['style'] == 'europian' ) {echo 'selected'; } ?> value="europian">Европейский</option>
                                        <option <?php if ($_POST['style'] == 'norway' ) {echo 'selected'; } ?> value="norway">Норвежский</option>
                                        <option <?php if ($_POST['style'] == 'shvedish' ) {echo 'selected'; } ?> value="shvedish">Шведский</option>
                                    </select>
                                </label>
                            </li>
                            <li><hr></li>
                        </ul>
                        <div class="wide">
                            <a class="ref" href="#">Расширенный поиск</a>
                            <div id="wide_search">
                                <h3>Расширенный поиск:</h3>
                                <ul>
                                    <li><h4>Тип строения</h4>
                                        <ul>
                                            <li><label><input type="checkbox" name="building_type[]" <?php if (in_array('dom', $_POST['building_type'] )) {echo 'checked'; } ?> value="dom">Дом</label></li>
                                            <li><label><input type="checkbox" name="building_type[]" <?php if (in_array('garaj', $_POST['building_type'] )) {echo 'checked'; } ?> value="garaj">Гараж</label></li>
                                            <li><label><input type="checkbox" name="building_type[]" <?php if (in_array('basein', $_POST['building_type'] )) {echo 'checked'; } ?> value="basein">Бассейн</label></li>
                                            <li><label><input type="checkbox" name="building_type[]" <?php if (in_array('banya', $_POST['building_type'] )) {echo 'checked'; } ?> value="banya">Баня</label></li>
                                            <li><label><input type="checkbox" name="building_type[]" <?php if (in_array('zabor', $_POST['building_type'] )) {echo 'checked'; } ?> value="zabor">Забор</label></li>
                                        </ul>
                                    </li>
                                    <li><h4>Опции</h4>
                                        <ul>
                                            <li><label><input type="checkbox" name="option[]" <?php if (in_array('s_garajem', $_POST['option'] )) {echo 'checked'; } ?> value="s_garajem">С гаражом</label></li>
                                            <li><label><input type="checkbox" name="option[]" <?php if (in_array('s_mansardoy', $_POST['option'] )) {echo 'checked'; } ?> value="s_mansardoy">С мансардой</label></li>
                                            <li><label><input type="checkbox" name="option[]" <?php if (in_array('s_baseinom', $_POST['option'] )) {echo 'checked'; } ?> value="s_baseinom">С бассейном</label></li>
                                            <li><label><input type="checkbox" name="option[]" <?php if (in_array('s_sainoi', $_POST['option'] )) {echo 'checked'; } ?> value="s_sainoi">С сайной</label></li>
                                            <li><label><input type="checkbox" name="option[]" <?php if (in_array('s_terassoi', $_POST['option'] )) {echo 'checked'; } ?> value="s_terassoi">С терассой</label></li>
                                            <li><label><input type="checkbox" name="option[]" <?php if (in_array('s_cokolem', $_POST['option'] )) {echo 'checked'; } ?> value="s_cokolem">С цоколем</label></li>
                                            <li><label><input type="checkbox" name="option[]" <?php if (in_array('s_baney', $_POST['option'] )) {echo 'checked'; } ?> value="s_baney">С баней</label></li>
                                        </ul>
                                    </li>
                                    <li><h4>Тип</h4>
                                        <ul>
                                            <li><label><input type="checkbox" name="type[]" <?php if (in_array('elitnye', $_POST['type'] )) {echo 'checked'; } ?> value="elitnye">Элитные</label></li>
                                            <li><label><input type="checkbox" name="type[]" <?php if (in_array('kotedji', $_POST['type'] )) {echo 'checked'; } ?> value="kotedji">Коттеджи</label></li>
                                            <li><label><input type="checkbox" name="type[]" <?php if (in_array('eko_doma', $_POST['type'] )) {echo 'checked'; } ?> value="eko_doma">Эко дома</label></li>
                                            <li><label><input type="checkbox" name="type[]" <?php if (in_array('ekonom_doma', $_POST['type'] )) {echo 'checked'; } ?> value="ekonom_doma">Эконом дома</label></li>
                                        </ul>
                                    </li>
                                </ul>
                            </div>  
                        </div>
                        <button href="#" type="submit" class="btn btn-default">Подобрать проекты</button>
                    </div>
                    </form>

Здесь выводятся результаты фильтрации:

<div class="container page-template-page-category">
            <div class="row">
                <div class="col-xs-12">
                    <?php if (function_exists('dimox_breadcrumbs')) dimox_breadcrumbs(); ?>
                </div>
            <div class="row">
                <div class="col-md-3 left-side">
                    <?php get_template_part('search','block'); ?>
                </div>
                <div class="col-md-9">
                    <h1>Результаты поиска</h1>
                    <?php 
                    //print_r($_POST);
                    if ( $_POST['materials'] !='all') {                             // доступен или нет (метаполе)
                        $materials = array(
                            'key' => 'materials',
                            'value' => $_POST['materials']
                        );
                    }
                    if ( $_POST['floors'] !='all' ) {                               // доступен или нет (метаполе)
                        $floors = array(
                            'key' => 'floors',
                            'value' => $_POST['floors']
                        );
                    }
                    if ( $_POST['square'] !='all' ) {                               // доступен или нет (метаполе)
                        $square = array(
                            'key' => 'square',
                            'value' => $_POST['square']
                        );
                    }
                    if ( $_POST['style'] !='all' ) {                                // доступен или нет (метаполе)
                        $style = array(
                            'key' => 'style',
                            'value' => $_POST['style']
                        );
                    }

                    if (isset($_POST['building_type'])) {   
                        $building_type_array = Array();
                        $building_type = array(
                            'relation' => 'OR'
                        );
                        foreach ($_POST['building_type'] as $one) {
                        //print_r($one);
                        $building_type_array =  array(
                            'key' => 'building_type',
                            'value' => $one
                        );
                        $building_type[] = $building_type_array ;
                        }
                    }
                    if (isset($_POST['option'])) {  
                        $option_array = Array();
                        $option = array(
                            'relation' => 'OR'
                        );
                        foreach ($_POST['option'] as $one) {
                        //print_r($one);
                        $option_array =  array(
                            'key' => 'option',
                            'value' => $one
                        );
                        $option[] = $option_array ;
                        }
                    }
                    if (isset($_POST['type'])) {    
                        $type_array = Array();
                        $type = array(
                            'relation' => 'OR'
                        );
                        foreach ($_POST['type'] as $one) {
                        //print_r($one);
                        $type_array =  array(
                            'key' => 'type',
                            'value' => $one
                        );
                        $type[] = $type_array ;
                        }
                    }
                    $meta_query = array(                                        // сборка метаполей
                        'relation' => 'AND',
                        $materials,
                        $floors,
                        $square,
                        $style,
                        $building_type,
                        $option,
                        $type
                    );
                    $args   = array(
                                            'post_type'                 => 'home_project',
                                            'posts_per_page'            => 20,  // пагинация на главной странице раздела
                                            'posts_per_archive_page'    => 20,  // пагинация на архивных страницах
                                            'meta_query'                => $meta_query
                                        );
                    query_posts( $args );
                    $count = 1;
                     echo '<div class="row items cub">';
                                              $count_small = -6;
                                        //$posts_array = get_posts( $args ); 
                                            while ( have_posts() ) {
                                              {
                                                //setup_postdata($post); 
                                                the_post();
                                                $id = get_the_ID();
                                                $image = wp_get_attachment_image_src(get_field("main_image",$id), 'medium');
                                                if ($count_small <3 ) { $num = 4 ; } else { $num = 3 ; };
                                                    echo '<div class="col-sm-6 col-md-'.$num.'">
                    <div class="thumbnail item-prodj">
                        <a href="/home_project/'.get_post_field( 'post_name', $pr_id  ).'.html">
                    <img src="'.$image[0].'" alt="'.get_field("ploschad",$pr_id).'" title="'.get_field("ploschad",$pr_id).'">
                    <div class="caption-prodj">
                    <div class="logo-prodj"></div>
                    <div class="m2-prodj">B7462</div>
                    <div class="nomer-prodj">'.get_field("ploschad",$pr_id).' м<sup>2</sup>
                    </div>
                    <div class="level-prodj">'.get_field("n_flour",$pr_id).'</div>
                    <div class="pricep-prodj">Проект: <span>'.get_field("project_price",$pr_id).' руб</span></div>
                    <div class="build-prodj">Строительство: <span>'.get_field("build_price",$pr_id).' руб</span></div>
                    </div>

                        </a>
                    </div>
                    </div>' ; 
                                                      $count_small++;


                                                  if ($count_small == 3) {
                                                     echo '</div>';
                                                     echo '</div>';
                                                     echo '</div>';
                                                     echo '<div class="row items cub">';
                                                  }
                }
                                    $count++;   
            }
                ?>
            </div>
                </div>

            </div>
        </div>
        <div class="container">
            <div class="row"> 
                <div class="col-xs-12 content">
                <?php echo get_field('bottom_text',get_queried_object_id()); ?>
                </div>
            </div>
        </div>
READ ALSO
Internal Excation [Call to undefined function mb_convert_encoding ()]

Internal Excation [Call to undefined function mb_convert_encoding ()]

При запуске приложения с консоли выдает следующую ошибку

664
Как подключить оператора при общении с ботом Telegram

Как подключить оператора при общении с ботом Telegram

ЗдравствуйтеИспользую пакет на Laravel 5

139
Как короче записать цикл от 0 до 100?

Как короче записать цикл от 0 до 100?

Если учитывать пробелы, то минимум, что получилось у меня:

223
Найти подстроку в строке QString

Найти подстроку в строке QString

У меня есть строка, типа QString, которая содержит запись вида Some text COM5 some_text, число после COM в диапазоне от 1 до 255Как мне взять подстроку COM123?

182