Ich erstelle anhand der WordPress-Kategorien einen Katalog von Unternehmen nach Städten. Kategorien sind Städte. Benutzerdefiniertes Feld ist eine Region, in der Städte enthalten sind. Für benutzerdefiniertes Feld verwendet – Erweiterte benutzerdefinierte Felder
Zum Erstellen einer benutzerdefinierten Taxanomie-Reihenfolge verwendet – WP-Laufzeitordnung
$terms = get_terms( 'catalog_categories', array(
'depth' => 1,
'number' => 100,
'parent' => 0,
'orderby' => 'taxon_name', // order array name
'order' => 'DESC',
'hide_empty' => false,
'meta_query' => array(
'taxon_name' => array(
'key' => 'taxon' // acf custom field name
) )
) );
foreach ($terms as $key => $object) {
$region = get_field('taxon', $object);
echo $region . ' ' . $object->name . '<br>';
}
Ich erhalte:
Großpolen Posen
Großpolen Bojanowo
Mazoweckie Warschau
Dolnoslaskie Breslau
Dolnoslaskie Jawor
Aber ich brauche:
Großpolen
– Posen
– Bojanowo
Mazoweckie
– Warszawa
Dolnoslaskie
– Breslau
– Jawor
Helfen Sie bitte bei der Entscheidung dieses Problems
AKTUALISIEREN
*Hilfe, bitte fügen Sie dem Code einen Link (Slug) zur WordPress-Kategorie hinzu. Hier sammeln wir alle Städte einer Region:
$Sammlung[$region][] = $objekt->name;
Wir müssen jeder Stadt eine Schnecke hinzufügen
$object->Schnecke;
Die Schnecke müssen wir als Wert für die Option verwenden.
'<option value="' . **SLUG** . '" data-select2-id="'. $data_select_id . '-' .$i .'">' . $city . '</option>';
AKTUALISIEREN:
*Arbeitscode
Wir haben – $collection hinzugefügt[$region][] = $objekt->name; – $object->slug und kombiniert sie zu einem Array
$Sammlung[$region][] = array(‘name’ => $object->name, ‘slug’ => $object->slug);
Und für die Ausgabe verwenden wir – $city[‘name’] und $stadt[‘slug’]
<?php
$terms = get_terms( 'catalog_categories', array(
'depth' => 1,
'number' => 100,
'parent' => 0,
'orderby' => 'taxon_name', // order array name
'order' => 'DESC',
'hide_empty' => false,
'meta_query' => array(
'taxon_name' => array(
'key' => 'taxon' // acf custom field name
) )
) );
$collection = [];
foreach ($terms as $key => $object) {
$region = get_field('taxon', $object);
if (!isset($collection[$region])) {
$collection[$region] = [];
}
$collection[$region][] = array('name' => $object->name, 'slug' => $object->slug);
}
$data_select_id = 1;
echo '<div>';
foreach ($collection as $region => $cities) {
$i = 0;
echo '<div label="' . $region . '" data-select2-id="' . $data_select_id . '">'. $region;
foreach ($cities as $city) {
$i++;
echo '<option value="' . $city['slug'] . '" data-select2-id="'. $data_select_id . '-' .$i .'">' . $city['name'] . '</option>';
}
echo '</div>';
$data_select_id ++;
}
echo '</div>';
;?>