Menu dengan sendirinya adalah taksonomi di WP. Ini berarti bahwa Anda dapat menemukan semua menu dalam wp_terms
tabel, dengan menjalankan kueri berikut:
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';
Item menu adalah jenis posting kustom dalam WP. Mereka disimpan dalam wp_posts
tabel. Anda dapat menemukan semuanya dengan menggunakan kueri ini:
SELECT *
FROM wp_posts
WHERE post_type = 'nav_menu_item';
Hubungan antara menu dan item menu disimpan dalam wp_term_relationships
tabel. Untuk menemukan semua item menu tertentu Anda dapat menggunakan kueri ini:
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*/;
Informasi tentang menu yang dipilih saat ini terletak di wp_options
tabel sebagai array PHP berseri. Misalnya jika kita menggunakan tema TwentyEleven, maka kita akan memiliki catatan dalam wp_options
tabel dengan option_name
kolom sama dengan theme_mod_twentyeleven
dan option_value
kolom sama dengan ...;s:18:"nav_menu_locations";a:1:{s:7:"primary";i:103;}}
. Di sini Anda dapat melihat bahwa menu dengan jumlah yang term_id
sama dengan 103 saat ini dipilih sebagai"primary"
menu.
Prinsip kuncinya di sini adalah bahwa kami selalu memiliki catatan opsi terpisah untuk setiap tema WP. Pilihan tersebut memiliki struktur nama yang sama: theme_mods_{your-theme-name}
.
PS: Untuk mengubah menu saat ini di panel admin, cukup buka halaman Appearance
» Menus
dan pilih menu yang Anda butuhkan di Theme Locations
kotak meta:
term_id
?