Фильтр WP_QUERY по пользовательской таксономии - PullRequest
0 голосов
/ 24 января 2020

Я пытаюсь решить одну проблему с помощью одной из недавно созданных функций. Ниже вы найдете фрагмент кода, который создает раскрывающееся поле, в котором каждый представляет определенную c «партнерскую компанию». Код работает отлично.

function fnc_select_1() {

    $args = array(
        'post_type' => 'freecourses',
        'orderby' => 'meta_value',
        'status' => 'publish',
        'order' => 'DESC',
        'meta_key' => 'validation_date',
    );

    $the_query = new WP_Query($args);

    if ($the_query->have_posts()):

        while ($the_query->have_posts()) : $the_query->the_post();

                if(have_rows('validation_date')): 
                    while (have_rows('validation_date')) : the_row();  

                    if( get_sub_field('company')) {
                        $firm_array[] = get_sub_field('company');
                    }                                                                                                               

                    endwhile; 

                    wp_reset_query();

                else :
                    // no rows found
                endif;

        endwhile;

        $firms = array_unique($firm_array);
        natsort($firms);

        echo '<select type="text" class="form-control" name="company" id="company">';
          echo '<option value="">company</option>';
        foreach ($firms as $firm) {
            echo '<option value="'. $firm .'">'; 
            echo $firm;                                 
            echo '</option>';                                                   
        }
        echo '</select>';

    endif;  
}
add_shortcode( 'select_1', 'fnc_select_1' );

По некоторым причинам я решил улучшить эту функцию, добавив:

  • дополнительная фильтрация на основе пользовательской таксономии (называемой "тип")
  • на основе страницы, на которой будет отображаться функция, я хотел ограничить / отфильтровать эти компании, указав c условия этой таксономии.

Итак, я создал такой код:

  if (is_page(29557) ):
        $childno = '205';

    elseif (is_page(29640) ):
        $childno = '206';

    endif;  

и просто к своим аргументам wp_query, я решил добавить:

'tax_query' => array(     
    'relation' => 'AND',                 
      array(
        'taxonomy' => 'type',  
        'child_of' => $childno
      ),
),

, но это не работает Он вообще не отображает выпадающий список ..

В чем проблема?

...