Renombrar Custom Post Types y Taxonomías

30 ago 2010, 19:50:52
Vistas: 26.5K
Votos: 35

Comencé a desarrollar un sitio con más de una docena de custom post types. Me gustaría renombrar algunos de ellos, no solo el valor de visualización, sino el nombre real del custom post type. Sin embargo, me preocupa que al ejecutar simplemente una consulta de actualización SQL pueda perder algunos lugares donde necesito cambiar cosas o sobrescribir parte de los datos serializados. Ya he ingresado más de 3,000 elementos, por lo que no puedo simplemente reiniciar con una base de datos limpia.

¿Cuál sería la mejor manera de renombrar un custom post type? ¿Qué hay sobre renombrar una taxonomía?

1
Comentarios

Una pregunta de seguimiento en la misma línea es sobre las reglas personalizadas de reescritura en el .htaccess. ¿Habrá muchas reglas residuales obstruyendo mi base de datos? Aún no he lanzado el sitio, así que no necesito que los enlaces antiguos sean redirigidos.

Derek Perkins Derek Perkins
1 sept 2010 08:43:40
Todas las respuestas a la pregunta 3
4
54

Consulta SQL para renombrar los posts:

UPDATE  `wp_posts` SET  `post_type` =  '<nuevo nombre del tipo de post>' WHERE  `post_type` = '<nombre anterior del tipo de post>';

Consulta SQL para renombrar la taxonomía:

UPDATE  `wp_term_taxonomy` SET  `taxonomy` =  '<nuevo nombre de la taxonomía>' WHERE  `taxonomy` = '<nombre anterior de la taxonomía>';

Eso debería encargarse de todas las áreas de la base de datos. Solo recuerda hacer coincidir los nuevos nombres en el código donde se registran los tipos de post o taxonomías. Hasta donde yo sé, esto no está manejado por ningún plugin todavía.

30 ago 2010 20:24:58
Comentarios

Excelente respuesta, exactamente lo que necesitaba. Aquí un consejo por si otros tienen el mismo problema que yo: Después de ejecutar la consulta y actualizar mi código, las cosas básicamente funcionaban pero cuando intenté ir a la página de un elemento de contenido individual me apareció un error 404. Creo que había que reiniciar algún caché de enlaces permanentes; fui a Herramientas > Enlaces permanentes y hice clic en Guardar, luego las páginas detalladas empezaron a funcionar.

Andy Giesler Andy Giesler
11 mar 2011 22:06:50

Cuando hice esto, también actualicé el campo guid. Esto podría ayudar a hacer innecesario regenerar los enlaces permanentes como mencionó @AndyGiesler. Solo incluye lo siguiente en tu sentencia UPDATE: guid=REPLACE(guid, '<old post type name>', '<new post type name>')

rinogo rinogo
1 mar 2013 22:44:14

Solo para añadir un poco más de información al comentario de rinogo, esta es una forma un poco más segura de actualizar el guid: UPDATE wp_posts SET guid = REPLACE (guid, 'post_type=<old post type name>', 'post_type=<new post type name>');

David David
13 feb 2014 07:49:41

solo para que tengas en cuenta, deberás vigilar los nombres de las tablas cuando trabajes en multisitio

rmorse rmorse
21 may 2014 23:02:09
2

Hola @Derek Perkins:

En general, la respuesta de @John P Bloch es acertada pero con una salvedad. Los plugins e incluso los temas personalizados pueden y podrían almacenar información de tipos de contenido (post types), por lo que para asegurarte de no corromper tus datos, necesitas verificar que tus plugins y temas no almacenen tipos de contenido o, si lo hacen, que actualices sus datos también.

¿Puedes decirnos qué plugins estás utilizando?

30 ago 2010 21:50:41
Comentarios

Ese es un buen punto. Estoy construyendo mi tema personalizado, así que definitivamente tendré que revisar y modificar mi código. Sin embargo, no tengo ningún plugin que esté almacenando información de tipos de contenido personalizados.

Derek Perkins Derek Perkins
1 sept 2010 08:23:27

Este es un buen punto. Yo estaba usando Advanced Custom Fields, y por cada grupo de campos asociado a esa entrada tienes que reasignarlo manualmente al nuevo nombre del CPT. Después de eso funciona bien.

Chris Rae Chris Rae
11 dic 2015 22:51:10
2

Si no quieres tener que realizar las consultas SQL manualmente, hay un par de plugins que puedes usar:

He utilizado con éxito Convert Post Types para cambiar masivamente los tipos de publicación.

Para convertir publicaciones individuales, entonces Post Type Switcher es una mejor opción.

31 ago 2010 14:16:35
Comentarios

Gracias por publicar esos enlaces. No tengo problema en ejecutar las consultas SQL yo mismo, pero definitivamente serán útiles para otros que encuentren esta publicación.

Derek Perkins Derek Perkins
1 sept 2010 08:24:39

esto parece convertir tipos de publicaciones, no renombrarlos

vladkras vladkras
15 ago 2015 15:49:09