web-dev-qa-db-fra.com

Menu par défaut Wordpress dans la base de données

Il y a 3 menus dans mon wordpress (3.5) maintenant.

  • Menu principal (par défaut à partir de wp)
  • Menu pied de page (par défaut à partir de wp)
  • Menu de test

Maintenant, j'ai gardé le menu de test par défaut.

Où Wordpress stocke-t-il cette chose?

Je veux savoir où WordPress stocke le menu actuel qui s’affiche au début.

17
Hiren Rathod

Menu en lui-même est une taxonomie dans WP. Cela signifie que vous pouvez trouver tous les menus dans la table wp_terms en lançant la requête suivante:

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

L'élément de menu est un type de publication personnalisé dans WP. Ils sont stockés dans la table wp_posts. Vous pouvez tous les trouver en utilisant cette requête:

SELECT * 
  FROM wp_posts 
 WHERE post_type = 'nav_menu_item';

Les relations entre les menus et les éléments de menu sont stockées dans la table wp_term_relationships. Pour trouver tous les éléments d'un menu spécifique, vous pouvez utiliser cette requête:

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

Les informations sur le menu actuellement sélectionné se trouvent dans la table wp_options sous forme de tableau sérialisé PHP. Par exemple, si nous utilisons le thème TwentyEleven, nous aurons un enregistrement dans la table wp_options avec la colonne option_name égale à theme_mod_twentyeleven et la colonne option_value égale à ...;s:18:"nav_menu_locations";a:1:{s:7:"primary";i:103;}}. Ici, vous pouvez voir que le menu avec term_id égal à 103 est actuellement sélectionné comme menu "primary".

Le principe clé ici est que nous avons toujours un enregistrement d’options séparé pour chaque thème WP. Ces options ont la même structure de noms: theme_mods_{your-theme-name}.

P.S .: Pour changer le menu actuel dans le panneau d’administration, allez simplement à la page Appearance "Menus et sélectionnez le menu dont vous avez besoin dans la méta-boîte Theme Locations:

enter image description here

43
Eugene Manuilov