web-dev-qa-db-de.com

Benutzerdefinierter Beitragstyp - Taxonomie-Dropdown-Menü?

Ich habe einen benutzerdefinierten Beitragstyp erstellt und diesem benutzerdefinierten Beitragstyp verschiedene Metafelder/Felder hinzugefügt. Bis auf ein Element funktioniert alles hervorragend ...

Anstatt die Standardschnittstelle für die Auswahl einer Taxonomie zu verwenden, möchte ich nur ein Dropdown-Menü für den Benutzer zur Auswahl haben.

Hier geht es darum, den Administratoren die Möglichkeit zu geben, Taxonomieelemente hinzuzufügen, die zentral verwaltet werden können, aber für einen bestimmten Beitrag nur einer Taxonomie zugeordnet werden können.

Des Weiteren würde ich es vorziehen, diesen Dropdown in eine meiner vorhandenen Meta-Boxen einzufügen.

Hat jemand zufällig einen Beispielcode, mit dem ich diese Aufgabe ausführen kann?

5

Ich habe diese Frage in einem anderen Beitrag beantwortet: Taxonomie-Begriffe speichern

1

So habe ich das gemacht.

<?php $tax = get_object_taxonomies('TAXONOMY_NAME');
    $taxterms = get_terms( $tax, 'orderby=count&offset=1&hide_empty=0&fields=all' );
?>
<select name='tax' id='tax'>
    <option value='' <?php if (!count( $names )) echo "selected";?>>Select Term</option>
    <?php 
    foreach ( $taxterms as $term ) { 
        echo '<option value="' . $term->slug . '" selected>' . $term->name . '</option>',"\n"; 
    } ?>
</select>
4
jaredwilli

Ich habe keinen Code, um dies zu tun, aber es sollte einfach sein: Erstellen Sie eine Dropdown-Liste mit dem Namen tax_input[your_taxonomy_name], in der die Werte IDs sind, wenn Ihre Taxonomie hierarchisch ist (wie Kategorien), Werte, wenn nicht (wie Tags). Wenn Sie diesen Namen verwenden, wird er meines Erachtens automatisch ohne zusätzlichen Code von Ihnen gespeichert. Sie können die Dropdown-Liste mit der Funktion wp_dropdown_categories erstellen und die Option selected mit dem Taxonomiebegriff übergeben, der ausgewählt werden soll. Die Rückruffunktion, die die Meta-Box erstellt, erhält den Parameter $post, sodass Sie den aktuellen Taxonomiebegriff von dort abrufen können.

Um das Meta-Feld zu deaktivieren, das normalerweise hinzugefügt wird, können Sie show_ui beim Erstellen der Taxonomie auf false setzen oder das Meta-Feld entfernen, bevor es gezeichnet wird (ich denke, der Haken add_meta_boxes ist ein guter Ort). Es wird die ID tagsdiv-your_taxonomy_name haben, wenn es nicht hierarchisch ist, oder your_taxonomy_namediv, wenn es ist.

1
Jan Fabry