Выборка записей имеющих термы в двух таксономиях

Пожалуйста подскажите как получить только записи имеющие термы в двух разных таксономиях.
На данный момент я пытаюсь сделать это через WP_Query используя следующий код:

<?php
$program_locations_args = array(
	'taxonomy'   => 'program_locations',
	'parent'     => 0,
	'hide_empty' => false,
);
$locations              = get_terms( $program_locations_args );
$audience_args     = array(
	'taxonomy'   => 'more_program_audience',
	'fields'     => 'names',
	'hide_empty' => false,
);
$program_audiences = get_terms( $audience_args );
foreach ( $locations as $location ) { ?>
	<div class="hide" data-region="<?= $location->name; ?>">
		<?php foreach ( $program_audiences as $program_audience ) { ?>
			<?php
			$program_audience_location = new WP_Query( [
				'post_type'             => 'programs',
				'posts_per_page'        => - 1,
				'nopaging'              => true,
				'tax_query'      => [
					'relation' => 'AND',
					[
						'taxonomy' => 'program_locations',
						'field'    => 'name ',
						'terms'    => $location->name,
					],
					[
						'taxonomy' => 'more_program_audience',
						'field'    => 'name ',
						'terms'    => $program_audience,
					]
				]
			] );
			?>
			<div class="hiden" data-name="<?= $program_audience; ?>" data-value="<?= count
			( $program_audience_location->posts ); ?>" data-color="color" data-location='<?=
			$location->slug; ?>'>

			</div>
		<?php } ?>
	</div>
<?php }; ?>

И у меня выводится везде одно и тоже значение(((