У меня есть примерно следующее:
$terms = get_the_terms( get_the_ID(), 'kosmetyki_dystrybutor'); $terms_ids = []; foreach ( $terms as $term ) { $terms_ids[] = $term->term_id; } $args = array( 'post_type' => 'kosmetyki', 'tax_query' => array( 'relation' => 'AND', array( 'taxonomy' => 'kosmetyki_dystrybutor', 'field' => 'term_id', 'terms' => array($term->term_id) ) ), ); $query = new WP_Query($args); if ($query->have_posts()) : while ($query->have_posts()) : $query->the_post(); ?> //here posts <?php endwhile; endif;?>
Но не работает. Мне нужны сообщения из таксономии «kosmetyki_dystrybutor». Каждому «дистрибьютору» нужен собственный список сообщений. Что я делаю неправильно? Thx для справки 🙂
$term
не устанавливается нигде в вашем коде. Вы помещаете идентификаторы в $terms_ids
, но затем в вашем запросе вы используете $term->term_id
. $term
не существует вне foreach
. Вы должны передавать $terms_ids
непосредственно в terms
:
$terms = get_the_terms( get_the_ID(), 'kosmetyki_dystrybutor'); $terms_ids = []; foreach ( $terms as $term ) { $terms_ids[] = $term->term_id; } $args = array( 'post_type' => 'kosmetyki', 'tax_query' => array( 'relation' => 'AND', array( 'taxonomy' => 'kosmetyki_dystrybutor', 'field' => 'term_id', 'terms' => $terms_ids, ) ), ); $query = new WP_Query($args);