Obter chaves de campo personalizadas específicas de uma postagem e colocar em uma matriz

Eu tenho o seguinte código para procurar a longitude e a latitude com base em um campo personalizado após salvar a postagem. Meus campos de endereço (street_1, cidade e estado) são separados. Eu procurei e pensei que poderia colocar os valores dessas meta-teclas separadas em uma matriz e passá-las para o URL. Eu tenho o valor do estado trabalhando, mas eu preciso do endereço completo. Eu tentei muitas maneiras diferentes e agora estou pedindo ajuda. Todas as pistas serão apreciadas.

Aqui está o código:

function geocode_address($post_id) { $custom_fields = get_post_custom(); if(isset($custom_fields['state']) && !empty($custom_fields['state'][0])) { $resp = wp_remote_get( "http://maps.googleapis.com/maps/api/geocode/json?address=".urlencode($custom_fields['state'][0])."&sensor=false" ); if ( 200 == $resp['response']['code'] ) { $body = $resp['body']; $data = json_decode($body); if($data->status=="OK"){ $latitude = $data->results[0]->geometry->location->lat; $longitude = $data->results[0]->geometry->location->lng; update_post_meta($post_id, "latitude", $latitude); update_post_meta($post_id, "longitude", $longitude); } } } } add_action('save_post', 'geocode_address'); 

Obrigado Deon

Solutions Collecting From Web of "Obter chaves de campo personalizadas específicas de uma postagem e colocar em uma matriz"

Não há necessidade de colocá-los em uma matriz. De acordo com a documentação do Google, você deve separar as várias peças do endereço na url como um endereço formatado padrão (EUA).

 // Example taken from google's docs: $state = 'CA'; $street = 'Mountain View'; $address = '1600 Amphitheatre Parkway'; function geocode_address($post_id) { $custom_fields = get_post_custom(); // just set $city, $state and $address to the appropriate custom field variables here if(isset($custom_fields['state']) && !empty($custom_fields['state'][0])) { $resp = wp_remote_get( "http://maps.googleapis.com/maps/api/geocode/json?address=".urlencode($address . ',' . $city . ',' .$state)."&sensor=false" ); if ( 200 == $resp['response']['code'] ) { $body = $resp['body']; $data = json_decode($body); if($data->status=="OK"){ $latitude = $data->results[0]->geometry->location->lat; $longitude = $data->results[0]->geometry->location->lng; update_post_meta($post_id, "latitude", $latitude); update_post_meta($post_id, "longitude", $longitude); } } } } add_action('save_post', 'geocode_address');