Поиск по категории И настраиваемому полю в WordPress - PullRequest
0 голосов
/ 05 марта 2019

Мне нужна помощь, чтобы понять, как работает поисковый запрос в WordPress.Я строю метабокс для районов.Каждый пост связан с районом.Затем я создаю форму поиска с двумя выпадающими списками, районом и выпадающими категориями (с функцией wp_dropdown_category)

<form method="get" id="advanced-searchform" role="search" class="flex" action="<?php echo esc_url( home_url( '/' ) ); ?>">
    <input type="hidden" name="s" value="">
    <div class="form-group">
        <div class="form-select">
            <?php
            echo'<div><fieldset>';
        echo '<label for="arrondissement">Définir un arrondissement</label><br/>';
        echo '<select name="arrondissement">';
        echo '<option ' . selected( '1er arrondissement', $arrondissement, false ) . ' value="1er arrondissement">1er arrondissement</option>';
        echo '<option ' . selected( '2ème arrondissement', $arrondissement, false ) . ' value="2ème arrondissement">2ème arrondissement</option>';
        echo '<option ' . selected( '3ème arrondissement', $arrondissement, false ) . ' value="3ème arrondissement">3ème arrondissement</option>';
        echo '<option ' . selected( '4ème arrondissement', $arrondissement, false ) . ' value="4ème arrondissement">4ème arrondissement</option>';
        echo '<option ' . selected( '5ème arrondissement', $arrondissement, false ) . ' value="5ème arrondissement">5ème arrondissement</option>';
        echo '<option ' . selected( '6ème arrondissement', $arrondissement, false ) . ' value="6ème arrondissement">6ème arrondissemen</option>';
        echo '<option ' . selected( '7ème arrondissement', $arrondissement, false ) . ' value="7ème arrondissement">7ème arrondissement</option>';
        echo '<option ' . selected( '8ème arrondissement', $arrondissement, false ) . ' value="8ème arrondissement">8ème arrondissement</option>';
        echo '<option ' . selected( '9ème arrondissement', $arrondissement, false ) . ' value="9ème arrondissement">9ème arrondissement</option>';
        echo '<option ' . selected( '10ème arrondissement', $arrondissement, false ) . ' value="10ème arrondissement">10ème arrondissement</option>';
        echo '<option ' . selected( '11ème arrondissement', $arrondissement, false ) . ' value="11ème arrondissement">11ème arrondissement</option>';
        echo '<option ' . selected( '12ème arrondissement', $arrondissement, false ) . ' value="12ème arrondissement">12ème arrondissement</option>';
        echo '<option ' . selected( '13ème arrondissement', $arrondissement, false ) . ' value="13ème arrondissement">13ème arrondissement</option>';
        echo '<option ' . selected( '14ème arrondissement', $arrondissement, false ) . ' value="14ème arrondissement">14ème arrondissement</option>';
        echo '<option ' . selected( '15ème arrondissement', $arrondissement, false ) . ' value="15ème arrondissement">15ème arrondissement</option>';
        echo '<option ' . selected( '16ème arrondissement', $arrondissement, false ) . ' value="16ème arrondissement">16ème arrondissement</option>';
        echo '<option ' . selected( '17ème arrondissement', $arrondissement, false ) . ' value="17ème arrondissement">17ème arrondissement</option>';
        echo '<option ' . selected( '18ème arrondissement', $arrondissement, false ) . ' value="18ème arrondissement">18ème arrondissement</option>';
        echo '<option ' . selected( '19ème arrondissement', $arrondissement, false ) . ' value="19ème arrondissement">19ème arrondissement</option>';
        echo '<option ' . selected( '20ème arrondissement', $arrondissement, false ) . ' value="20ème arrondissement">20ème arrondissement</option>';
        echo '</select>';
        echo '</fieldset></div>';
       ?>
        </div>
    </div>
    <div class="form-group">
        <div class="form-select select-type">
            <?php 
            echo '<select name="categories">';
            // Add custom option as default
            echo '<option>' . __('No Category', 'text-domain') . '</option>';

            // Get categories as array
            $categories = get_categories( $args );
            foreach ( $categories as $category ) :

            // Check if current term ID is equal to term ID stored in database
            $selected = ( $stored_category_id ==  $category->term_id  ) ? 'selected' : '';

            echo '<option value="' . $category->term_id . '" ' . $selected . '>' . $category->name . '</option>';

            endforeach;

            echo '</select>'; ?>
        </div>
    </div>

<button type="submit" id="searchsubmit" value="Search" />    <i class="fas fa-search"></i></button>

Теперь мне нужно отобразить результаты поиска в зависимости от выбора пользователя (район И категория) .. и я действительно не знаю, как заставить это работать.Вся тема, которую я читаю, посвящена созданию цикла через WP_Query, я знаю, что должен смешать tax_query с meta_query ... на моей странице результатов поиска у меня есть что-то вроде этого, но всегда ничего не возвращается;.

    <?php   

    $arr = $_GET['arrondissement'];
    $args = array(
    'fields' => 'ids',
    'tax_query' => array(
        array(
            'taxonomy' => 'category',
            'field'    => 'slug',

        ),
    ),
    'meta_query' => array(
        array(
            'key'     => 'arrondissement',
            'value'   => $arr,
            'compare' => '=',
        ),
    ),
);

    $query = new WP_Query( $args );?>

мой URL выглядит так:? S = & округ = 4ème + округ & категории = 6 что я делаю неправильно ??

...