Pense neste pseudo código
if sky == blue
set a = 5
if grass == green
set a = 7
Qual será o valor a
? Não 12.
Esta é exatamente a mesma situação. Você está definindo um parâmetro específico para um valor específico. Na segunda chamada, você está sobrescrevendo seu valor anterior. Para evitar isso, você pode construir o valor (aqui, a matriz) antecipadamente e chamar ->set()
apenas uma vez.
$tax_query = array();
if( isset( $rt_term_id ) && ! empty( $rt_term_id ) ) {
$tax_query[] = array(
'taxonomy' => 'vakantiesoorten_listing',
'field' => 'id',
'terms' => array($rt_term_id[0]),
);
}
if( empty($_GET['location_geo_data']) && isset( $rt_term_id_land ) && ! empty( $rt_term_id_land ) ) {
$tax_query[] = array(
'taxonomy' => 'landen_listing',
'field' => 'id',
'terms' => array($rt_term_id_land[0]),
);
}
$query->set( 'tax_query', $tax_query );