Filter zu wp_dropdown_pages () oder wp_dropdown_categories () hinzufügen – kein Container auswählen?

Ich arbeite mit wp_dropdown_pages() und wp_dropdown_categories() und beide geben immer eine -Box mit ihren s als Items aus.

Ist es möglich, einen Filter / Hook zu diesen functionen hinzuzufügen, so bekomme ich nur die s, ohne in ein

Der Grund, warum ich frage, ist, dass ich Seiten und Kategorien in einem Dropdown kombinieren möchte.

Ich konnte keinen Parameter dafür finden!

Irgendwelche Ideen dazu?

Solutions Collecting From Web of "Filter zu wp_dropdown_pages () oder wp_dropdown_categories () hinzufügen – kein Container auswählen?"

Ein Filter namens wp_dropdown_pages existiert in der function wp_dropdown_pages() . Mit diesem Filter können Sie die Ausgabe der function ändern. Für die Sache, die Sie tun möchten, würde ich jedoch nicht empfehlen, diesen Filter zu verwenden, da dies für alle Code gilt, der wp_dropdown_pages() , einschließlich Plugins.

Eine Möglichkeit, sich Ihrer Situation zu nähern, besteht darin, einfach das Markup zu entfernen. Sie können reguläre Ausdrücke wie folgt verwenden:

 $ddp = wp_dropdown_pages(array( 'echo' => FALSE, // return the HTML instead of outputting it )); $ddp = preg_replace('~^$~', '', $ddp); // closing select tag 

Auf diese Weise bleiben nur die übrig. Machen Sie das gleiche für die Dropdown-Kategorie, verketten Sie die Strings und umschließen Sie sie mit Ihrem eigenen .

Hinweis: Mir ist klar, dass die Verwendung von Regex zum Analysieren von HTML böse ist . Es ist schmutzig, aber es macht den Job.

Eine sauberere Möglichkeit, die gewünschte Auswahlliste zu erstellen, besteht darin, die integrierten Dropdown-functionen vollständig zu vermeiden und stattdessen die functionen get_pages() und get_categories() . Diese geben ein Array zurück, das Sie durchlaufen können, um ein eigenes Markup zu erstellen. Ein grundlegendes Beispiel folgt.

 $pages = get_pages(); $categories = get_categories(); $html = '';