Get_the_term_list inexplicavelmente adiciona valores em foreach

Estou tentando obter três valores de todas as minhas postagens personalizadas, para preencher um Google Map com os lugares onde eu já estive. Tudo está indo bastante bem, exceto por um problema que estou tendo com get_the_term_list . Por algum motivo, ele adiciona o número “1” na frente de cada valor corretamente retornado.

Como exemplo, meu código abaixo emitirá o seguinte para “nome”:

 Key: name, Value: 1  

O código do problema:

  'trips', 'post_status' => 'publish', 'posts_per_page' => -1, 'fields' => 'ids' ) ); //loop through each post foreach($loop as $p){ //get the meta and taxonomy data $name = get_the_term_list($p, "mountains",true); $wtr_longitud = get_post_meta($p,"wtr_longitude",true); $wtr_latitud = get_post_meta($p,"wtr_latitude",true); //Add to Array $map_array[] = array ("name" => $name, "latitude" => $wtr_latitud, "longitude" => $wtr_longitud); } //Print array foreach($map_array as $y) { foreach( $y as $key => $value){ echo "Key: $key, Value: $value 
"; } } ?>

Solutions Collecting From Web of "Get_the_term_list inexplicavelmente adiciona valores em foreach"

O problema reside na function get_the_term_list (), que é definida com os seguintes argumentos:

 get_the_term_list( $id = 0, $taxonomy, $before = '', $sep = '', $after = '' ) 

Você está definindo o argumento de $before como verdadeiro que o PHP imprime como 1, então é por isso que está imprimindo um 1 antes da lista. Você deve remover o argumento completamente:

 get_the_term_list( $p, 'mountains' ); 

ou substituí-lo por uma string:

 get_the_term_list( $p, 'mountains', '
  • ', '
  • ', '
' );