Menu default Wordpress dalam database

18

Ada 3 menu di wordpress saya (3,5) sekarang.

  • Menu utama (default dari wp)
  • Menu footer (default dari wp)
  • Menu uji

Sekarang saya telah menyimpan menu tes sebagai standar.

Di mana Wordpress menyimpan ini?

Saya ingin tahu di mana wordpress menyimpan tentang menu saat ini yang ditampilkan di ujung depan.

Hiren Rathod
sumber

Jawaban:

46

Menu dengan sendirinya adalah taksonomi di WP. Ini berarti bahwa Anda dapat menemukan semua menu dalam wp_termstabel, 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_poststabel. 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_relationshipstabel. 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_optionstabel sebagai array PHP berseri. Misalnya jika kita menggunakan tema TwentyEleven, maka kita akan memiliki catatan dalam wp_optionstabel dengan option_namekolom sama dengan theme_mod_twentyelevendan option_valuekolom 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_idsama 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» Menusdan pilih menu yang Anda butuhkan di Theme Locationskotak meta:

masukkan deskripsi gambar di sini

Eugene Manuilov
sumber
Terima kasih atas balasan Anda, tetapi saya ingin tahu di mana ia menyimpan menu yang default (menunjukkan ke ujung depan) sekarang.
Hiren Rathod
@HirenRathod Saya telah memperbarui jawaban saya
Eugene Manuilov
Ya, saya mendapat jawabannya. Saya menggunakan tema hypershot dan menyimpan menu primery sebagai menu tes. Ia menyimpan seperti ini: 2: {i: 0; b: 0; s: 18: "nav_menu_locations"; a: 2: {s: 11: "header-menu"; i: 27; s: 11: "footer -menu "; i: 0;}} Di sini saya: 27 berarti 27 adalah term_id dari wp_terms. Terima kasih @ eugene-manuilov :)
Hiren Rathod
Bagaimana Anda memilih item menu (halaman / posting / tautan) untuk diberikan term_id?
Xeoncross