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 donde esta guardado? Básicamente, tengo un menú grande que lleva una eternidad crearlo. Estoy en desarrollo ahora y en lugar de recrearlo en producción, quiero intentar copiar el sql para ver si funciona. ¡Gracias!
Hiren Rathod
Cuando se agrega un nuevo menú personalizado, su entrada se agrega a varias tablas.
- mesa:
_term_taxonomy
con una columnataxonomy
y valornav_menu
. - de 1)
term_id
también está en la tabla:_terms
con el título del menú que se muestra en el panel de administración - mesa:
_term_relationship
contendráterm_texonomy_id
desde 1) y conexión a todos los object_id que se vincularán a todos_post
mesa teniendosub_menu
y por debajo del menú de nivel. - mesa:
_postmeta
contendrá todos los detalles relacionados con el menú y el submenú para cadaobject_id
de_posts
mesa.
-
No entiendo cómo esto no se vota a favor. Estaba buscando una forma de exportar e importar los menús. Sé mi respuesta. No. Lo haré manualmente.
– toto_tico
4 de julio de 2013 a las 4:47
-
Debería aclarar el paso 3 para decir que object_id de term_relationships es igual al campo id de wp_post
– Miguel
22 de diciembre de 2014 a las 23:54
-
Desinstalé WP Fastest Cache y después de terminar el proceso de desinstalación dejé una entrada en el menú de la izquierda y no puedo encontrarla en ninguna parte de las tablas que dices…
– Pato
28 de noviembre de 2017 a las 1:07
Todd Moisés
Los elementos del menú de navegación se almacenan en la tabla wp_posts con post_type="nav_menu_item"
.
-
Pero, ¿qué tipo de publicación personalizada?
– Adán F.
30 de mayo de 2013 a las 15:08
-
qué mal está esto, wordpress infla las tablas _posts y _options arrojando todo tipo de cosas allí que deberían colocarse en una tabla separada para una mejor administración de la base de datos y velocidad de carga
– Daniel Tulp
23/10/2013 a las 12:00
-
Sí, la base de datos está muy mal normalizada y esta respuesta es solo parcialmente correcta. Identifica los objetos que componen el menú, pero no proporciona los valores (p. ej., texto del menú) asociados con el menú. Todavía estoy cavando para tratar de encontrar esos datos.
– Bob Jones
30 de marzo de 2014 a las 5:28
Los títulos de menú, ID y nombres reales se almacenan en la tabla wp_terms.
-
$menu_list = get_terms('nav_menu');
devolverá todos los menús.– yitwail
15 de agosto de 2011 a las 19:16
-
Esta consulta devuelve solo el ID del menú. ¿Qué consulta devuelve cada elemento del menú con suficiente información para regenerar el menú?
– Bob Jones
30 de marzo de 2014 a las 5:38
-
Una vez que tenga la identificación del menú, puede ejecutar
$wp_menu_items = wp_get_nav_menu_items( $id );
– Sara
11/03/2019 a las 19:30
jay d
Odio volver a un hilo viejo. Pero si alguien se encuentra con esto como lo hice yo buscando la respuesta, a partir de WP 3.2
la post_type
para el menú ahora se llama nav_menu_item
en el wp_posts
mesa. No tenían eso en la página de wp, solo tenían nav_menu
. Que no pude encontrar.
mandril reynolds
Los enlaces del menú personalizado están en el wp_postmeta
mesa debajo "meta_value"
meta_key = _menu_item_url
-
Verificar Respuestas de WordPress, el sitio de preguntas y respuestas de WordPress de Stack Exchange. Sería genial si pudieras compartir algo de tu experiencia. ¡Por cierto, WordCamp Phoenix fue genial!
– Chris_O
19 mayo 2011 a las 23:40
-
@Chris_O ¡Hola, tío! gracias. Lo he visto. Rara vez me pongo en la pila… sitios. Debería intentar pasar el rato allí más a menudo :/ #toobusy
-Chuck Reynolds
27 de mayo de 2011 a las 5:10
-
@Chris_O para tu información, tengo una cuenta allí: wordpress.stackexchange.com/users/2173/ryno
-Chuck Reynolds
27 de mayo de 2011 a las 5:11
doyle lewis
Quería proporcionar una respuesta más completa y actualizada para las personas que se topan con esta publicación como lo hice 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
. solo busca por name
para el nombre de su menú. Toma nota del DNI. En mi ejemplo esto será 33
. Del mismo modo, podría insertar una nueva fila aquí para crear un nuevo menú. La babosa no puede tener espacios en ella. Solo reemplaza en -
en cambio.
Ahora vamos a buscar 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 vincule con su identificación anterior, por lo que tendrá que seguir 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á bueno tomar nota de la ID del elemento que copió (incluso mejor si fue del mismo menú), ya que la usaremos en el siguiente paso.
ahora ve a wp_postmeta
y busca en el post_id
campo para el elemento 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 probablemente necesitarán cambios. Y asegúrese de poner el ID de su nuevo artículo (9179) en _menu_item_object_id
.
Una vez que se hayan creado todos, ahora podemos vincular ese elemento del menú a nuestro menú. Necesitamos conseguir el term_taxonomy_id
de wp_term_taxonomy
. solo busca term_id
usando la identificación del primer paso, 33 para mí. los term_taxonomy_id
pasa a ser 33 para mí también. No, necesitamos insertar una nueva fila en wp_term_relationships
. object_id
será su ID de publicación (9179) y term_taxonomy_id
es lo que acabamos de buscar (33).
Ahora su nuevo artículo debería estar en su menú.
-
Verificar Respuestas de WordPress, el sitio de preguntas y respuestas de WordPress de Stack Exchange. Sería genial si pudieras compartir algo de tu experiencia. ¡Por cierto, WordCamp Phoenix fue genial!
– Chris_O
19 mayo 2011 a las 23:40
-
@Chris_O ¡Hola, tío! gracias. Lo he visto. Rara vez me pongo en la pila… sitios. Debería intentar pasar el rato allí más a menudo :/ #toobusy
-Chuck Reynolds
27 de mayo de 2011 a las 5:10
-
@Chris_O para tu información, tengo una cuenta allí: wordpress.stackexchange.com/users/2173/ryno
-Chuck Reynolds
27 de mayo de 2011 a las 5:11
codificar
Aquí están los scripts SQL que usé:
Obtenga los menús de la tabla wp_term:
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'
Utilice term_id para obtener todos los títulos/enlaces de menú de todas las demás tablas conectadas. En mi opinión, esta es una base de datos relacional terrible. Simplemente reemplace el tt.term_id con el suyo de la consulta anterior, a continuación es 11.
SELECT p.post_title, p.post_name, p.menu_order, pm.meta_value 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 INNER JOIN wp_postmeta AS pm ON p.Id = pm.post_id WHERE p.post_type="nav_menu_item" AND tt.term_id = 11 AND pm.meta_key = '_menu_item_url'