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

16

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

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

Maintenant, j'ai conservé 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.

    
posée Hiren Rathod 05.01.2013 - 12:40

1 réponse

40

Le 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 exécutant 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 rechercher 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 PHP sérialisé. 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 "primary" menu.

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 boîte méta Theme Locations :

    
réponse donnée Eugene Manuilov 05.01.2013 - 12:56

Lire d'autres questions sur les étiquettes