plugin instalando español datos consultar bases mysql wordpress

mysql - instalando - ¿Dónde se guardan los menús personalizados en la base de datos para Wordpress 3.0?



wordpress español (8)

Cada elemento del menú se guarda en la tabla de publicaciones y la jerarquía / opciones / URL del menú, etc. que pertenecen a estos elementos se almacenan en la tabla postmeta. En la tabla postmeta puede ver la columna post_id que pertenece a los elementos de la tabla de publicaciones.

He estado buscando y buscando en mi base de datos sql en phpmyadmin pero parece que no puedo encontrar dónde se almacenan los menús personalizados en la base de datos. ¿Alguien sabe dónde está almacenado? Tengo un gran menú, básicamente, eso demora una eternidad en crear. Estoy en desarrollo ahora y en lugar de volver a crearlo en producción, quiero intentar copiar el sql para ver si funciona. ¡Gracias!


Cuando se agrega un nuevo menú personalizado, su entrada se agrega a varias tablas.

  1. tabla: _term_taxonomy con una columna taxonomy y valor nav_menu .
  2. de 1) term_id también está en la tabla: _terms con el título de menú que se muestra en el panel de administración
  3. table: _term_relationship contendrá term_texonomy_id de 1) y conexión a todos los object_id que se vincularán a todas _post tablas sub_menu tengan sub_menu y debajo del menú de niveles.
  4. table: _postmeta contendrá todos los detalles relacionados con el menú y el submenú para cada object_id de la tabla _posts .

Los elementos del menú de navegación se almacenan en la tabla post_type = ''nav_menu_item'' con post_type = ''nav_menu_item'' .


Los enlaces de menú personalizados están en la tabla wp_postmeta en "meta_value" meta_key = _menu_item_url


Los títulos de menú, ID y nombres reales se almacenan en la tabla wp_terms.


Odio toparme con un viejo hilo. Pero si alguien se encuentra con esto como lo hice buscando la respuesta, a partir del WP 3.2 el tipo de post_type para el menú ahora se llama nav_menu_item en la tabla wp_posts . No tenían eso en la página wp, solo tenían nav_menu . Que no pude encontrar


Quería proporcionar una respuesta más completa y actualizada para las personas que tropiezan con esta publicación como yo. Hay varios lugares en la base de datos que deben verificarse / actualizarse si desea insertar o actualizar manualmente los elementos del menú.

El primer paso es encontrar el contenedor del menú principal. Esto se almacena en wp_terms . Simplemente busca por name para el nombre de tu menú. Toma nota de la ID. En mi ejemplo, esto será 33 . Del mismo modo, puede insertar una nueva fila aquí para crear un nuevo menú. La babosa no puede tener espacios en ella. Solo sustituya en - en cambio.

Ahora vamos a encontrar elementos en ese menú. Esos se almacenan en wp_posts con un post_type de nav_menu_item . No hay nada en esta tabla que lo post_title a su ID anterior, por lo que tendrá que ir por post_title . Si el objetivo es insertar un nuevo elemento de menú, con phpMyAdmin puede hacer clic en Copy en un elemento existente en cualquier menú y cambiar post_title y post_name . Ahora tome nota de la identificación del artículo que insertó. El mío es 9179. También sería bueno tomar nota de la identificación del artículo que copiaste (incluso mejor si era del mismo menú) ya que lo usaremos en el próximo paso.

Ahora ve a wp_postmeta y busca en el campo post_id el ítem que acabamos de copiar. Esto mostrará todos los campos que deben completarse para obtener la información de nuestro nuevo elemento de menú. Usando phpMyAdmin, copie cada una de esas entradas y cámbielas según sea necesario. _menu_item_menu_item_parent , _menu_item_target , y _menu_item_classes son los campos que muy probablemente necesiten cambios. Y asegúrese de poner la ID de su nuevo artículo (9179) en _menu_item_object_id .

Después de que todos hayan sido creados, ahora podemos vincular ese elemento del menú a nuestro menú. Necesitamos obtener term_taxonomy_id de wp_term_taxonomy . Simplemente busque term_id usando la ID del primer paso, 33 para mí. El term_taxonomy_id pasa a ser 33 para mí también. No, necesitamos insertar una nueva fila en wp_term_relationships . object_id será tu id. posterior (9179) y term_taxonomy_id es lo que acabamos de buscar (33).

Ahora su nuevo artículo debería estar en su menú.


$postId = $wpdb->get_var($wpdb->prepare("SELECT post_id FROM `wp_postmeta` WHERE meta_key=''_menu_item_object_id'' AND `meta_value`=''$id''")); $postIdc = $wpdb->get_var($wpdb->prepare("SELECT post_id FROM `wp_postmeta` WHERE meta_key=''_menu_item_object_id'' AND `meta_value`=''$a[1]''")); $sql2 = "SELECT * FROM `wp_postmeta` WHERE meta_key=''_menu_item_menu_item_parent'' AND `meta_value`=''$postId''"; $sql2c = "SELECT * FROM `wp_postmeta` WHERE meta_key=''_menu_item_menu_item_parent'' AND `meta_value`=''$postIdc''";