Привіт @jessegavin :
Морські меню зберігаються в поєднанні користувацьких типів публікацій та спеціальних таксономій. Кожне меню зберігається як термін (тобто "Про меню" , знайдений в wp_terms
) спеціальної таксономії (тобто nav_menu
, знайденої в wp_term_taxonomy
.)
Кожен елемент меню Nav зберігається у вигляді допису post_type=='nav_menu_item'
(тобто "Про фірму" , знайденого в wp_posts
) з його атрибутами, що зберігаються як мета meta (in wp_postmeta
) з використанням meta_key
префікса, _menu_item_*
де _menu_item_menu_item_parent
є ідентифікатор батьківського елемента пункту меню Вашого меню.
Взаємозв'язок між меню та пунктами меню зберігається wp_term_relationships
там, де це object_id
стосується $post->ID
пункту меню Nav Menu, і $term_relationships->term_taxonomy_id
стосується меню, визначеного колективно в wp_term_taxonomy
і wp_terms
.
Я впевнений, що можна було б підключити і те, 'wp_update_nav_menu'
і 'wp_update_nav_menu_item'
створити фактичні меню в wp_terms
паралельному наборі відносин, wp_term_taxonomy
і wp_term_relationships
де кожен пункт меню Nav, у якому є пункти меню Sub-Nav, також стає його власним Nav Menu.
Ви також хочете підключити 'wp_get_nav_menus'
(що я запропонував додати до WP 3.0 на основі якоїсь подібної роботи, яку я робив кілька місяців тому), щоб переконатися, що створені меню Nav не відображаються користувачем для маніпуляцій адміністратором, інакше вони я б швидко вийшов із синхронізації, і тоді у вас був би кошмар даних.
Це здається цікавим і корисним проектом, але це трохи більше коду та тестування, ніж я можу дозволити собі вирішити зараз частково, тому що все, що синхронізує дані, як правило, є ПДФА, якщо мова йде про прасування всіх помилок (і тому, що Клієнти, що платять, тиснуть на мене, щоб все зробити. :) Але, озброївшись вищенаведеною інформацією, я досить вмотивований розробник плагінів WordPress може кодувати це, якщо захоче.
Звичайно, ви зараз розумієте, якщо ви зробите код, ви зобов'язані опублікувати його тут, щоб ми могли отримати користь від вашої великої! :-)