Hi @jessegavin :
Navigationsmenüs werden in einer Kombination aus benutzerdefinierten Beitragstypen und benutzerdefinierten Taxonomien gespeichert. Jedes Menü wird als ein Begriff (dh "About Menu" , gefunden in wp_terms) einer benutzerdefinierten Taxonomie (dh nav_menugefunden in wp_term_taxonomy.) Gespeichert .
Jeder Nav-Menüpunkt wird als Beitrag von post_type=='nav_menu_item'(dh "Über die Firma" , gefunden in wp_posts) mit seinen Attributen als Beitrags-Meta (in wp_postmeta) gespeichert, wobei das meta_keyPräfix verwendet wird, _menu_item_*wo _menu_item_menu_item_parentdie ID des übergeordneten Nav-Menüpunkt-Beitrags Ihres Menüpunkts ist.
Die Beziehung zwischen Menüs und Menüelementen ist in gespeichert, wp_term_relationshipswobei sie object_idsich auf das $post->IDfür das Navigationsmenüelement und $term_relationships->term_taxonomy_idauf das in wp_term_taxonomyund gemeinsam definierte Menü bezieht wp_terms.
Ich bin mir ziemlich sicher , dass es möglich wäre , haken beide 'wp_update_nav_menu'und 'wp_update_nav_menu_item'aktuelle Menüs in erstellen wp_termsund einen parallelen Satz von Beziehungen in wp_term_taxonomyund wp_term_relationshipswo jeden Nav Menüpunkt, der auch Unter Nav Menüpunkte hat wird es eigenes Nav - Menü.
Sie sollten auch einen Hook 'wp_get_nav_menus' (den ich aufgrund einer ähnlichen Arbeit, die ich vor einigen Monaten durchgeführt habe, zu WP 3.0 hinzugefügt habe) verwenden, um sicherzustellen, dass Ihre generierten Navigationsmenüs nicht für den Benutzer im Administrator zur Manipulation angezeigt werden, andernfalls würde sehr schnell aus der Synchronisation geraten und du hättest einen Daten-Albtraum auf der Hand.
Klingt nach einem unterhaltsamen und nützlichen Projekt, aber es ist ein bisschen mehr Code und Testen, als ich es mir leisten kann, zum gegenwärtigen Zeitpunkt in Angriff zu nehmen, da alles, was Daten synchronisiert, zum PITA wird, wenn es darum geht, alle Fehler auszubügeln (und weil Zahlende Kunden fordern mich auf, die Dinge zu erledigen. :) Aber mit den obigen Informationen bewaffnet, bin ich ein ziemlich motivierter WordPress-Plug-in-Entwickler, der sie codieren könnte, wenn er wollte.
Natürlich stellen Sie jetzt fest, dass Sie, wenn Sie es codieren, verpflichtet sind, es hierher zurückzusenden, damit wir alle von Ihrer Größe profitieren können! :-)