Menu tự nó là một phân loại trong WP. Điều đó có nghĩa là bạn có thể tìm thấy tất cả các menu trong wp_termsbảng, bằng cách chạy truy vấn sau:
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';
Mục menu là loại bài tùy chỉnh trong WP. Chúng được lưu trữ trong wp_postsbảng. Bạn có thể tìm thấy tất cả chúng bằng cách sử dụng truy vấn này:
SELECT *
FROM wp_posts
WHERE post_type = 'nav_menu_item';
Mối quan hệ giữa các menu và các mục menu được lưu trữ trong wp_term_relationshipsbảng. Để tìm tất cả các mục của menu cụ thể, bạn có thể sử dụng truy vấn này:
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*/;
Thông tin về menu hiện đang chọn được đặt trong wp_optionsbảng dưới dạng mảng PHP được tuần tự hóa. Ví dụ: nếu chúng ta sử dụng chủ đề TwentyEleven, thì chúng ta sẽ có một bản ghi trong wp_optionsbảng với option_namecột bằng theme_mod_twentyelevenvà option_valuecột bằng ...;s:18:"nav_menu_locations";a:1:{s:7:"primary";i:103;}}. Ở đây bạn có thể thấy menu đó term_idbằng 103 hiện đang được chọn làm "primary"menu.
Nguyên tắc chính ở đây là chúng tôi luôn có bản ghi tùy chọn riêng cho từng chủ đề WP. Các tùy chọn như vậy có cùng cấu trúc tên : theme_mods_{your-theme-name}.
PS: Để thay đổi menu hiện tại trong bảng quản trị, chỉ cần truy cập Appearance» Menustrang và chọn menu bạn cần trong Theme Locationshộp meta:
