Skip to content

Instantly share code, notes, and snippets.

@azamatx
Last active October 30, 2024 04:01
Show Gist options
  • Save azamatx/f7630fd822fba50f4709444b0c2b4321 to your computer and use it in GitHub Desktop.
Save azamatx/f7630fd822fba50f4709444b0c2b4321 to your computer and use it in GitHub Desktop.
Uzbekistan regions seeder for WordPress taxonomy
<?php
function seed_regions_if_requested() {
if ( ! isset( $_GET['seed-regions'] ) ) {
return;
}
$regions = [
[
"name" => "Qoraqalpog'iston Respublikasi",
"districts" => [
"Amudaryo tumani",
"Beruniy tumani",
"Kegayli tumani",
"Qonliko'l tumani",
"Qorao'zak tumani",
"Qo'ng'irot tumani",
"Mo'ynoq tumani",
"Nukus tumani",
"Nukus shahri",
"Taxtako'pir tumani",
"To'rtko'l tumani",
"Xo'jayli tumani",
"Chimboy tumani",
"Shumanay tumani",
"Ellikqal'a tumani",
"Taxiatosh shahri",
"Bo'zatov tumani"
]
],
[
"name" => "Andijon viloyati",
"districts" => [
"Andijon shahri",
"Andijon tumani",
"Asaka tumani",
"Baliqchi tumani",
"Buloqboshi tumani",
"Bo'z tumani",
"Jalaquduq tumani",
"Izbosgan tumani",
"Qorasuv shahri",
"Qo'rg'ontepa tumani",
"Marhamat tumani",
"Oltinko'l tumani",
"Paxtaobod tumani",
"Ulug'nor tumani",
"Xonabod tumani",
"Xo'jaobod shahri",
"Shaxrixon tumani",
"Asaka shahri"
]
],
[
"name" => "Buxoro viloyati",
"districts" => [
"Buxoro shahri",
"Buxoro tumani",
"Vobkent tumani",
"G'ijduvon tumani",
"Jondor tumani",
"Kogon tumani",
"Kogon shahri",
"Qorako'l tumani",
"Qorovulbozor tumani",
"Olot tumani",
"Peshku tumani",
"Romitan tumani",
"Shofirkon tumani"
]
],
[
"name" => "Jizzax viloyati",
"districts" => [
"Arnasoy tumani",
"Baxmal tumani",
"G'allaorol tumani",
"Do'stlik tumani",
"Sharof Rashidov tumani",
"Jizzax shahri",
"Zarbdor tumani",
"Zafarobod tumani",
"Zomin tumani",
"Mirzacho'l tumani",
"Paxtakor tumani",
"Forish tumani",
"Yangiobod tumani"
]
],
[
"name" => "Qashqadaryo viloyati",
"districts" => [
"G'uzor tumani",
"Dehqonobod tumani",
"Qamashi tumani",
"Qarshi tumani",
"Qarshi shahri",
"Kasbi tumani",
"Kitob tumani",
"Koson tumani",
"Mirishkor tumani",
"Muborak tumani",
"Nishon tumani",
"Chiroqchi tumani",
"Shahrisabz tumani",
"Yakkabog' tumani",
"Ko'kdala tumani"
]
],
[
"name" => "Navoiy viloyati",
"districts" => [
"Zarafshon shahri",
"Karmana tumani",
"Qiziltepa tumani",
"Konimex tumani",
"Navbahor tumani",
"Navoiy shahri",
"Nurota tumani",
"Tomdi tumani",
"Uchquduq tumani",
"Xatirchi tumani"
]
],
[
"name" => "Namangan viloyati",
"districts" => [
"Kosonsoy tumani",
"Mingbuloq tumani",
"Namangan tumani",
"Namangan shahri",
"Norin tumani",
"Pop tumani",
"To'raqo'rg'on tumani",
"Uychi tumani",
"Uchqo'rg'on tumani",
"Chortoq tumani",
"Chust tumani",
"Yangiqo'rg'on tumani"
]
],
[
"name" => "Samarqand viloyati",
"districts" => [
"Bulung'ur tumani",
"Jomboy tumani",
"Ishtixon tumani",
"Kattaqo'rg'on tumani",
"Kattaqo'rg'on shahri",
"Qo'shrabot tumani",
"Narpay tumani",
"Nurabod tumani",
"Oqdaryo tumani",
"Payariq tumani",
"Pastarg'om tumani",
"Paxtachi tumani",
"Samarqand tumani",
"Samarqand shahri",
"Toyloq tumani",
"Urgut tumani"
]
],
[
"name" => "Surxondaryo viloyati",
"districts" => [
"Angor tumani",
"Boysun tumani",
"Denov tumani",
"Jarqo'rg'on tumani",
"Qiziriq tumani",
"Qo'mqo'rg'on tumani",
"Muzrabot tumani",
"Oltinsoy tumani",
"Sariosiy tumani",
"Termiz tumani",
"Termiz shahri",
"Uzun tumani",
"Sherobod tumani",
"Sho'rchi tumani",
"Bandixon tumani"
]
],
[
"name" => "Sirdaryo viloyati",
"districts" => [
"Boyovut tumani",
"Guliston tumani",
"Guliston shahri",
"Mirzaobod tumani",
"Oqoltin tumani",
"Sayxunobod tumani",
"Sardoba tumani",
"Sirdaryo tumani",
"Xavos tumani",
"Shirin shahri",
"Yangier shahri",
"Toshkent tumani"
]
],
[
"name" => "Toshkent viloyati",
"districts" => [
"Angiren shahri",
"Bekabod tumani",
"Bekabod shahri",
"Bo'ka tumani",
"Bo'stonliq tumani",
"Zangiota tumani",
"Qibray tumani",
"Quyichirchiq tumani",
"Oqqo'rg'on tumani",
"Olmaliq shahri",
"Ohangaron tumani",
"Parkent tumani",
"Piskent tumani",
"O'rtachirchiq tumani",
"Chinoz tumani",
"Chirchiq shahri",
"Yuqorichirchiq tumani",
"Yangiyo'l tumani",
"Yangiyo'l shahri",
"Ohangaron shahri"
]
],
[
"name" => "Farg'ona viloyati",
"districts" => [
"Beshariq tumani",
"Bog'dod tumani",
"Buvayda tumani",
"Dang'ara tumani",
"Yozyovon tumani",
"Quva tumani",
"Quvasoy shahri",
"Qo'qon shahri",
"Qo'shtepa tumani",
"Marg'ilon shahri",
"Oltiariq tumani",
"Rishton tumani",
"So'x tumani",
"Toshloq tumani",
"Uchko'prik tumani",
"O'zbekiston tumani",
"Farg'ona tumani",
"Farg'ona shahri",
"Furqat tumani"
]
],
[
"name" => "Xorazm viloyati",
"districts" => [
"Bog'ot tumani",
"Gurlan tumani",
"Qo'shko'pir tumani",
"Urganch tumani",
"Urganch shahri",
"Xiva tumani",
"Xazarasp tumani",
"Xonqa tumani",
"Shavot tumani",
"Yangiariq tumani",
"Yangibozor tumani"
]
],
[
"name" => "Toshkent shahri",
"districts" => [
"Bektimer tumani",
"Mirzo Ulug'bek tumani",
"Mirobod tumani",
"Olmazor tumani",
"Sergeli tumani",
"Uchtepa tumani",
"Yashnobod tumani",
"Chilonzor tumani",
"Shayxontohur tumani",
"Yunusobod tumani",
"Yakkasaroy tumani"
]
]
];
$taxonomy = 'your_taxonomy_name'; // Replace with your taxonomy name
foreach ( $regions as $region ) {
if ( ! term_exists( $region['name'], $taxonomy ) ) {
$inserted = wp_insert_term( $region['name'], $taxonomy );
if ( ! is_wp_error( $inserted ) ) {
$region_term = get_term_by( 'term_id', $inserted['term_id'], $taxonomy );
}
} else {
$region_term = get_term_by( 'name', $region['name'], $taxonomy );
}
if ( is_object( $region_term ) && isset( $region_term->term_id ) ) {
foreach ( $region['districts'] as $district ) {
if ( ! term_exists( $district, $taxonomy, ['parent' => $region_term->term_id] ) ) {
wp_insert_term( $district, $taxonomy, ['parent' => $region_term->term_id] );
}
}
}
}
}
add_action('init', 'seed_regions_if_requested');
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment