Меню саме по собі є систематикою в WP. Це означає, що ви можете знайти всі меню в wp_terms
таблиці, виконавши наступний запит:
SELECT *
FROM wp_terms AS t
LEFT JOIN wp_term_taxonomy AS tt ON tt.term_id = t.term_id
WHERE tt.taxonomy = 'nav_menu';
Пункт меню - це спеціальний тип публікації в WP. Вони зберігаються в wp_posts
табл. Ви можете їх знайти за допомогою цього запиту:
SELECT *
FROM wp_posts
WHERE post_type = 'nav_menu_item';
Відносини між меню та пунктами меню зберігаються в wp_term_relationships
табл. Щоб знайти всі елементи певного меню, ви можете скористатися цим запитом:
SELECT p.*
FROM wp_posts AS p
LEFT JOIN wp_term_relationships AS tr ON tr.object_id = p.ID
LEFT JOIN wp_term_taxonomy AS tt ON tt.term_taxonomy_id = tr.term_taxonomy_id
WHERE p.post_type = 'nav_menu_item'
AND tt.term_id = /*your menu ID*/;
Інформація про вибране в даний час меню міститься в wp_options
таблиці як серіалізований масив PHP. Наприклад, якщо ми використовуємо тему TwentyEleven, то у нас буде запис у wp_options
таблиці з option_name
стовпцями дорівнює theme_mod_twentyeleven
та option_value
стовпцем дорівнює ...;s:18:"nav_menu_locations";a:1:{s:7:"primary";i:103;}}
. Тут ви бачите, що term_id
в даний час "primary"
меню вибрано меню рівним 103 .
Основний принцип тут полягає в тому, що у нас завжди є окремі записи параметрів для кожної теми WP. Такі варіанти мають однакову структуру імені: theme_mods_{your-theme-name}
.
PS: Щоб змінити поточне меню на панелі адміністратора, просто перейдіть на сторінку Appearance
» Menus
та виберіть потрібне меню у Theme Locations
мета-вікні: