Filtern Sie benutzerdefinierte Posts mit automatisch befüllten Dropdown-Selektoren

Ich habe einen benutzerdefinierten Post-Typ namens Agent erstellt .

Ich habe eine Seite, die alle Agenten auflistet.

Wenn ich einen Agenten hinzufüge, habe ich eine ganze Reihe von benutzerdefinierten Meta-Boxen, die ausgefüllt werden können, Region, Spezialität, Sprache …

Ich würde gerne eine Reihe von Dropdown-Boxen am Frontend hinzufügen, die mit allen Begriffen aus jedem benutzerdefinierten Meta gefüllt werden. Zum Beispiel würde eine Region-Dropbox mit allen Regionen von allen Agenten gefüllt werden. Wenn ich einen neuen Agenten in einer neuen Region hinzufüge, wird die Dropbox diese automatisch auswählen.

Danke fürs schauen.

Solutions Collecting From Web of "Filtern Sie benutzerdefinierte Posts mit automatisch befüllten Dropdown-Selektoren"

Wenn Sie das versuchen würden, würden Sie am Ende eine ziemlich große Datenmenge abfragen, die Sie vermeiden sollten.

Am besten wäre es, die Daten in einigen global (array) $prefix_meta_box_values und diese später für die Ausgabe am Frontend zu verwenden.

Sie könnten auch ein Array auf save_post Hook save_post . get_post_meta( $post_id, 'key', 'value' ) einfach die Werte mit get_post_meta( $post_id, 'key', 'value' ) innerhalb einer function auf Ihrem Post-Bearbeitungsbildschirm in der Admin-Benutzeroberfläche und fügen Sie sie zu einem db-Feld mit update_option('agents_data') . Dies würde Ihnen erlauben, get_option('agents_data'); im Frontend und füllen Sie Ihre Auswahlfelder.

Aktualisieren:

 // The updata agents option could look like this, asuming that you already added // some data with an add_option call somewhere. Else you could just grap the old // data, merge it with the new and update the post meta field. // This was fastly written out of my head, so don't expect it to work without any fixing. function my_agents_data() { $new_agents_data = get_post_meta( $GLOBALS[$post]->ID, 'key', 'value' ); $old_agents_data = get_option( 'agents_data' ); $resulting_agents_data = array_merge( $old_agents_data, $new_agents_data ); update_option( 'agents_data', $resulting_agents_data ); } add_action( 'save_post', 'my_agents_data' ); 

Dadurch können Sie die get_option('agents_data') aus dem Optionsfeld get_option('agents_data') in der wp-Optionstabelle get_option('agents_data') . Zeigen Sie damit, dass Sie dann vermeiden sollten, dass die Metadaten in die Post-Meta-Tabelle gelangen.