Veritabanındaki Wordpress varsayılan menüsü


19

Wordpress'te (3.5) şu anda 3 menü var.

  • Ana menü (varsayılan wp)
  • Altbilgi menüsü (wp'den varsayılan)
  • Test menüsü

Şimdi test menüsünü varsayılan olarak tuttum.

Wordpress bu şeyi nerede saklıyor?

Wordpress'in ön tarafta görüntülenen geçerli menü hakkında nerede depolandığını bilmek istiyorum.

Yanıtlar:


47

Menü tek başına WP'de bir sınıflandırmadır. Bu wp_terms, aşağıdaki sorguyu çalıştırarak tablodaki tüm menüleri bulabileceğiniz anlamına gelir :

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';

Menü öğesi WP'de özel yazı tipidir. wp_postsTabloda saklanırlar . Hepsini bu sorguyu kullanarak bulabilirsiniz:

SELECT * 
  FROM wp_posts 
 WHERE post_type = 'nav_menu_item';

Menüler ve menü öğeleri arasındaki ilişkiler wp_term_relationshipstabloda saklanır . Belirli bir menünün tüm öğelerini bulmak için bu sorguyu kullanabilirsiniz:

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*/;

Şu anda seçili menü hakkındaki bilgiler wp_optionstabloda serileştirilmiş PHP dizisi olarak bulunur. Örneğin, TwentyEleven temasını kullanırsak, wp_optionstabloda option_namesütun eşittir theme_mod_twentyelevenve option_valuesütun eşittir bir kayda sahip oluruz ...;s:18:"nav_menu_locations";a:1:{s:7:"primary";i:103;}}. Burada term_id103'e eşit menünün şu anda "primary"menü olarak seçildiğini görebilirsiniz .

Buradaki temel prensip, her bir WP teması için her zaman ayrı seçenek kaydımızın olmasıdır. Böyle seçenekler aynı ad yapıya sahiptir: theme_mods_{your-theme-name}.

Not: Yönetici panelinde geçerli menüyü değiştirmek için Appearance» Menussayfasına gidin ve Theme Locationsmeta kutuda ihtiyacınız olan menüyü seçin :

resim açıklamasını buraya girin


Cevabınız için teşekkürler, ancak şimdi (ön uçta gösterilen) varsayılan menüyü nerede sakladığını bilmek istiyorum.
Hiren Rathod

@HirenRathod Cevabımı güncelledim
Eugene Manuilov

Evet, cevabı aldım. Hipershot temasını kullanıyorum ve test menüsü olarak primery menüsünü tutuyorum. Aşağıdaki gibi depolar a: 2: {i: 0; b: 0; s: 18: "nav_menu_locations"; a: 2: {s: 11: "üstbilgi menüsü"; i: 27; s: 11: "altbilgi -menu "; i: 0;}} Burada i: 27, wp_terms'den term_id anlamına gelir. Teşekkürler @ eugene-manuilov :)
Hiren

Belirli bir menü öğelerini (sayfalar / yayınlar / bağlantılar) nasıl seçersiniz term_id?
Xeoncross
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.