Created
May 4, 2016 01:09
-
-
Save ricardobrg/9daa0a2a3e01e3f3e03f8c35a9ba45e2 to your computer and use it in GitHub Desktop.
Estados e cidades brasileiras populados em uma taxonomia do wordpress.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
// É aconselhável criar um backup do banco antes | |
// crie a taxonomia cidade na functions do tema | |
add_action('init', 'register_locations'); | |
function register_locations() { | |
register_taxonomy( 'cidade',array ( | |
0 => 'locais', | |
), | |
array( 'hierarchical' => true, | |
'label' => 'Cidades', | |
'show_ui' => true, | |
'query_var' => true, | |
'show_admin_column' => true, | |
'labels' => array ( | |
'search_items' => 'Cidade', | |
'popular_items' => 'Cidades populares', | |
'all_items' => 'Todos as cidades', | |
'edit_item' => 'Editar item', | |
'update_item' => 'Atualizar cidade', | |
'add_new_item' => 'Adicionar cidade' | |
) | |
) | |
); | |
} | |
// coloque essa função na functions do seu tema, coloque a chamada em alguma página e acesse pelo browser uma única vez | |
function create_location_terms() { | |
$feed = json_decode(file_get_contents('brazil-cities-states.json')); //este arquivo você pode pegar aqui: https://gist.github.com/brunomarks/8851491 | |
foreach ($feed->estados as $key => $estado) { | |
$sigla = $estado->sigla; | |
$estado_term = wp_insert_term($estado->sigla, 'cidade'); | |
$current_term_id = $estado_term['term_id']; | |
foreach ($estado->cidades as $key => $cidade) { | |
wp_insert_term( $cidade, 'cidade', array( 'parent'=> $current_term_id ) ); | |
} | |
} | |
} | |
// Verifique a taxonomia, deverá conter todas as cidades dentro dos respectivos estados | |
//------------------------------------------------------------------------------------------------------------------------ | |
// Outra forma usando plugin JSON API | |
// Crie um controller na pasta controllers do plugin (locations.php) | |
// Acesse a URL uma única vez clicando em get_locations, no painel do JSON API, não esqueça de fazer backup do banco. | |
/* | |
Controller name: Locations | |
Controller description: Essa URL gera uma lista de estados/cidades dentro de uma taxonomia regioes. | |
*/ | |
set_time_limit(0); | |
class JSON_API_Locations_Controller { | |
public function get_locations() { | |
$feed = json_decode(file_get_contents('brazil-cities-states.json')); | |
foreach ($feed->estados as $key => $estado) { | |
$sigla = $estado->sigla; | |
$estado_term = wp_insert_term($estado->sigla, 'cidade'); | |
$current_term_id = $estado_term['term_id']; | |
foreach ($estado->cidades as $key => $cidade) { | |
wp_insert_term( $cidade, 'cidade', array( 'parent'=> $current_term_id ) ); | |
} | |
} | |
return array('status' => 'OK'); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment