Menú por defecto de Wordpress en la base de datos

16

Hay 3 menús en mi wordpress (3.5) ahora.

  • Menú principal (predeterminado de wp)
  • Menú de pie de página (predeterminado de wp)
  • menú de prueba

Ahora he mantenido el menú de prueba por defecto.

¿Dónde almacena Wordpress esta cosa?

Quiero saber dónde almacena wordpress sobre el menú actual que se muestra en la parte delantera.

    
pregunta Hiren Rathod 05.01.2013 - 12:40

1 respuesta

40

El menú en sí mismo es una taxonomía en WP. Esto significa que puede encontrar todos los menús en la tabla wp_terms , ejecutando la siguiente consulta:

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

El elemento de menú es un tipo de mensaje personalizado en WP. Se almacenan en la tabla wp_posts . Puede encontrarlos todos utilizando esta consulta:

SELECT * 
  FROM wp_posts 
 WHERE post_type = 'nav_menu_item';

Las relaciones entre los menús y los elementos del menú se almacenan en la tabla wp_term_relationships . Para encontrar todos los elementos de un menú específico, puede utilizar esta consulta:

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

La información sobre el menú actualmente seleccionado se encuentra en la tabla wp_options como matriz serializada de PHP. Por ejemplo, si usamos el tema TwentyEleven, entonces tendremos un registro en la tabla wp_options con la columna option_name igual a la columna theme_mod_twentyeleven y option_value igual a la columna ...;s:18:"nav_menu_locations";a:1:{s:7:"primary";i:103;}} . Aquí puede ver que el menú con term_id igual a 103 está actualmente seleccionado como menú "primary" .

El principio clave aquí es que siempre tenemos un registro de opciones separado para cada tema de WP. Estas opciones tienen la misma estructura de nombre: theme_mods_{your-theme-name} .

P.S .: Para cambiar el menú actual en el panel de administración, solo vaya a la página Appearance » Menus y seleccione el menú que necesita en el cuadro meta Theme Locations :

    
respondido por el Eugene Manuilov 05.01.2013 - 12:56

Lea otras preguntas en las etiquetas