Reihenfolge der WordPress-Kategorien nach benutzerdefiniertem Feld (fertig). So geben Sie ein benutzerdefiniertes Feld nur einmal aus

Lesezeit: 3 Minuten

Benutzer-Avatar
Кирилл Меркушев

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>'; 
;?>

Sie könnten ein zusätzliches Array verwenden, um Städte wie folgt in Regionen zu sortieren:

$collection = [];
foreach ($terms as $key => $object) {
    $region = get_field('taxon', $object);

    if (!isset($collection[$region])) {
        $collection[$region] = [];
    }

    $collection[$region][] = $object->name;
}

foreach ($collection as $region => $cities) {
    echo $region . '<br/>';
    foreach ($cities as $city) {
        echo '--' . $city . '<br/>';
    }
}

  • Danke für die Antwort, jetzt werde ich alles prüfen und das Ergebnis schreiben.

    – Кирилл Меркушев

    26. Dezember 2017 um 18:19 Uhr

  • Vielen Dank. Funktioniert genau so wie ich es brauche!

    – Кирилл Меркушев

    26. Dezember 2017 um 18:22 Uhr

  • Vielen Dank. Sagen Sie mir bitte, wie kann ich mehr $object->slug für jede $city hinzufügen, um es als URL zu jeder Kategorie zu verwenden.

    – Кирилл Меркушев

    28. Dezember 2017 um 20:38 Uhr

  • Tut mir leid, das verstehe ich nicht. Was meinst du mit “more $object->slug”?

    – unterschied

    28. Dezember 2017 um 20:41 Uhr

  • Wielkopolskie //region ACF custom field
    — Poznań //city wordpress category, I need category slug – “poznan” to add link to city name

    – Кирилл Меркушев

    28. Dezember 2017 um 20:53 Uhr


1227840cookie-checkReihenfolge der WordPress-Kategorien nach benutzerdefiniertem Feld (fertig). So geben Sie ein benutzerdefiniertes Feld nur einmal aus

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy