Wordpress-Standardmenü in der Datenbank
1 Antworten
- Stimmen
-
- 2013-01-05
Das Menü selbstisteine Taxonomiein WP. Diesbedeutet,dass Sie alle Menüsin der Tabelle
wp_terms
finden können,indem Sie diefolgende Abfrage ausführen:SELECT * FROM wp_terms ASt LEFT JOIN wp_term_taxonomy AStt ONtt.term_id=t.term_id WHEREtt.taxonomy='nav_menu';
Der Menüpunktistein benutzerdefinierter Beitragstypin WP. Sie werdenin der Tabelle
wp_posts
gespeichert. Sie können allemithilfe dieser Abfragefinden:SELECT * FROM wp_posts WHEREpost_type='nav_menu_item';
Beziehungen zwischen Menüs und Menüelementen werdenin der Tabelle
wp_term_relationships
gespeichert. Um alle Elementeeinesbestimmten Menüs zufinden,können Sie diese Abfrage verwenden:SELECT S. * FROM wp_posts ASp LEFT JOIN wp_term_relationships AStr ONtr.object_id=p.ID. LEFT JOIN wp_term_taxonomy AStt ONtt.term_taxonomy_id=tr.term_taxonomy_id WHEREp.post_type='nav_menu_item' ANDtt.term_id=/* Ihre Menü-ID */;
Informationen zum aktuell ausgewählten Menüfinden Siein der Tabelle
wp_options
als serialisiertes PHP-Array. Wenn wirbeispielsweise das TwentyEleven-Thema verwenden,haben wireinen Datensatzin der Tabellewp_options
mit der Spalteoption_name
,dietheme_mod_twentyeleven
undoption_value
entspricht ...; s: 18: "nav_menu_locations"; a: 1: {s: 7: "primary";i: 103;}}
. Hier sehen Sie,dass das Menümitterm_id
gleich 103 derzeit als"primäres"
Menü ausgewähltist.Das Schlüsselprinzip hierist,dass wirfürjedes WP-Themaimmereinen separaten Optionsdatensatz haben. Solche Optionen haben dieselbe Namensstruktur:
theme_mods_ {your-theme-name}
.P.S.: Um das aktuelle Menüim Admin-Bereich zu ändern,gehen Sieeinfach zu
Darstellung
& raquo; SeiteMenüs
und wählen Sie dasgewünschte Menüim Meta-FeldThemenpositionen
aus:Menu by itself is a taxonomy in WP. It means that you can find all menus in
wp_terms
table, by running following query: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';
Menu item is custom post type in WP. They are stored in
wp_posts
table. You can find all of them by using this query:SELECT * FROM wp_posts WHERE post_type = 'nav_menu_item';
Relations between menus and menu items are stored in
wp_term_relationships
table. To find all items of specific menu you can use this query: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*/;
Information about currently select menu is located in
wp_options
table as serialized PHP array. For example if we use TwentyEleven theme, then we will have a record inwp_options
table withoption_name
column equals totheme_mod_twentyeleven
andoption_value
column equals to...;s:18:"nav_menu_locations";a:1:{s:7:"primary";i:103;}}
. Here you can see that menu withterm_id
equals to 103 is currently selected as"primary"
menu.The key principle here is that we always have separate options record for each WP theme. Such options have the same name structure:
theme_mods_{your-theme-name}
.P.S.: To change current menu in the admin panel, just go to
Appearance
»Menus
page and select menu you need inTheme Locations
meta box:-
Dankefür deine Antwort aber Ichmöchte wissen,wo das Standardmenügespeichertist (dasjetztim Frontend angezeigt wird).Thanks for your reply but I want to know where it stores the menu which is default (showing to front end) now.
- 0
- 2013-01-05
- Hiren Rathod
-
@ HirenRathod Ich habemeine Antwort aktualisiert@HirenRathod I have updated my answer
- 0
- 2013-01-05
- Eugene Manuilov
-
Ja,ich habe die Antwortbekommen.Ich verwendeein Hypershot-Thema und habe das Primer-Menü als Testmenübeibehalten. Es speichert so a: 2: {i: 0;b: 0; s: 18: "nav_menu_locations"; a: 2: {s: 11: "Kopfzeilenmenü";i: 27; s: 11: "Fußzeilenmenü";i: 0;}} Hierbedeuteti: 27,dass 27 dieterm_id von wp_termsist. Danke @eugene-manuilov :)Yes, I got the answer. I'm using hypershot theme and kept primery menu as test menu. It stores like this a:2:{i:0;b:0;s:18:"nav_menu_locations";a:2:{s:11:"header-menu";i:27;s:11:"footer-menu";i:0;}} Here i:27 means 27 is the term_id from wp_terms. Thanks @eugene-manuilov :)
- 0
- 2013-01-06
- Hiren Rathod
-
Wie würden Sie die Menüpunkte (Seiten/Beiträge/Links)füreine bestimmte `term_id` auswählen?How would you select the menu items (pages/posts/links) for a given `term_id`?
- 0
- 2015-09-19
- Xeoncross
Inmeinem WordPress (3.5)gibt esjetzt 3 Menüs.
Jetzt habeich das Testmenü als Standardbeibehalten.
Wo speichert Wordpress dieses Ding?
Ichmöchte wissen,wo WordPress Informationen zum aktuellen Menü speichert,dasim Frontend angezeigt wird.