Menü für sich ist eine Taxonomie in WP. Dies bedeutet, dass Sie alle Menüs in der wp_terms
Tabelle finden können, indem Sie die folgende Abfrage ausführen:
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';
Der Menüpunkt ist ein benutzerdefinierter Beitragstyp in WP. Sie sind in der wp_posts
Tabelle gespeichert . Sie können alle von ihnen mit dieser Abfrage finden:
SELECT *
FROM wp_posts
WHERE post_type = 'nav_menu_item';
Die Beziehungen zwischen Menüs und Menüelementen werden in einer wp_term_relationships
Tabelle gespeichert . Um alle Elemente eines bestimmten Menüs zu finden, können Sie diese Abfrage verwenden:
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*/;
Informationen zum aktuell ausgewählten Menü finden Sie in der wp_options
Tabelle als serialisiertes PHP-Array. Wenn wir zum Beispiel das TwentyEleven-Thema verwenden, haben wir einen Datensatz in der wp_options
Tabelle mit option_name
Spalte gleich theme_mod_twentyeleven
und option_value
Spalte gleich ...;s:18:"nav_menu_locations";a:1:{s:7:"primary";i:103;}}
. Hier sehen Sie, dass term_id
aktuell ein Menü mit 103 als "primary"
Menü ausgewählt ist .
Das Schlüsselprinzip hierbei ist, dass wir für jedes WP-Thema immer einen eigenen Optionsdatensatz haben. Diese Optionen haben den gleichen Namen Struktur: theme_mods_{your-theme-name}
.
PS: Um das aktuelle Menü im Admin-Bereich zu ändern, gehen Sie einfach zur Appearance
» Menus
Seite und wählen Sie das gewünschte Menü in der Theme Locations
Meta-Box aus:
term_id
?