Вложенный цикл: какой способ/порядок?


Доброе утро (или вечер),

Я пытаюсь объединить в пользовательском архиве (таксономия-$taxonomy.php ) двойной (?) запрос. Давайте постараемся внести ясность:

Я хотел бы отобразить все сообщения из таксономии. Хорошо, это работает.

//start by fetching the terms for 'progression' taxonomy
$terms = get_terms( 'progression', array(
    'orderby'    => 'asc',
    'hide_empty' => 1
) );

И запрос

// Run a query for each progression
foreach( $terms as $term ) {

     $args = array(
        'post_type' => array('my_custom_post', 'another_custom_post'),
        'progression' => $term->slug,
        );

    $query = new WP_Query( $args );

    // output the term name (here "day1", "day2"...)                
    echo $term->name;

    // Start the Loop and output the titles
       while ( $query->have_posts() ) : $query->the_post(); 
           the_title(); 
       endwhile;   

    // use reset postdata to restore original query
    wp_reset_postdata();

} ?>

( конечно, я не нашел этого сам... спасибо этому форуму !)

НО (в этом-то и проблема) Он отображает каждое сообщение с этим налогом. Тем не менее, я хотел бы ограничить свои запрос в другую таксономию.

Второй налог "спорт" => волейбол, теннис, баскетбол...

По отдельности это работает. НО, как только я пытаюсь объединить оба критерия, я с треском проваливаюсь.

Я мог бы написать свой код (со вторым запросом и аргументами, но он не работает, так что, это полезно?) Большое спасибо за любую помощь.

 1
Author: Cha, 2017-01-08

1 answers

Для этого вам нужно добавить параметр tax_query с отношением,

$args = array(
    'post_type' => array('my_custom_post', 'another_custom_post'),
    'tax_query' => array(
        'relation' => 'AND',
        array(
            'taxonomy' => 'progression',
            'field'    => 'slug',
            'terms'    => $term->slug,
        ),
        array(
            'taxonomy' => 'sport',
            'field'    => 'term_id',
            'terms'    => array( 1, 2, 3 ),
            'operator' => 'IN',
        ),
    ),
);
$query = new WP_Query( $args );

Конечно, вам нужно будет организовать term_id для отношения таксономии спорта.

Вы найдете больше примеров и подробных сведений о параметре таксономии в справочнике по классу WP_Query

Надеюсь, это поможет.

 0
Author: Benoti, 2017-01-08 13:03:09