Migrar a WordPress

Si el otro día ya contaba que estaba migrando una web hecha en ASP y Microsoft Acces a MySQL y PHP con WordPress, hoy os dejo el código que utilicé para migrar los post de WordPress a partir de los datos que tenía de la vieja web.

Wordpress logo

Ayer ya dejamos los viejos datos en MySQL, pero en un formato propio que nada tiene que ver con WordPress. Hoy toca analizar cómo y mostrar el programa que he creado para la migración.

La web a migrar está actualmente activa, y la realicé hace ya unos 5 ó 6 años. La nueva está en gazteabertzaleak.net (prefiero no enlazarla para que no lo coja como contenido duplicado. Está todavía en desarrollo). Había casi 500 artículos en castellano y otros 500 en euskera, por lo que no quedaba otra que hacer un programa para migrarla.

El programa en sí no os va a solucionar una migración que necesitéis hacer a WordPress porque la web origen no estaba en ningún estándar concreto y necesitaréis hacer cambios sobre él, pero sí que puede valer para conocer un poco más de la estructura de WordPress a nivel de base de datos.

No desesperéis, esto es sólo para aquellos que conocen un poquito de PHP, o estén aprendiéndolo. Con estas líneas igual no queda muy claro pero viendo la estructura y el código quedará más claro.

Migrar ASP a WordPress

Una vez descargado renombrarlo a .php y ponerlo en el raiz de vuestro espacio web, que es el mismo en el que está el wp-config.php

¡Ojo, porque este programa realiza modificaciones en la base de datos! Utilizarlo con cuidado, y una vez usado borradlo para que nadie vía web pueda acceder a él. Es recomendable hacer antes de cualquier migración una base de datos de la web, pero sobre todo de la base de datos.

En la línea 58 véis que incluyo el archivo wp-config.php de configuración de WordPress con el fin de tener toda la información necesaria para poder operar en la base de datos de nuestro WordPress.

Voy a leer la información para cada uno de los posts en la antigua web (Línea 110), y a partir del título, tenía que conseguir el post_name o nombre del post (Línea 125). Por ejemplo Si el título es Blogs desde Cero, el post_name deberá ser www.galder.net/blogs-desde-cero/ Para ello hay que quitar todos los caracteres especiales, y los espacios sustituirlos por guiones.

Previamente había leído la información que había sobre Autores, Medios de comunicación y temática y lo guardé en un array, para añadir esa información en el cuerpo del post al final, y como etiquetas. (Línea 66)
Para cada post, añado esa información al final del post, la de autor medio y temática, y además la añado como etiquetas.

Ya había instalado el Ultimate Tag Warrior, que vale para poder clasificar cada post mediante etiquetas, y luego accederlas vía www.galder.net/tag/etiqueta-seleccionada/ que nos mostraría todos los posts que incluyesen ese tag. También añado como etiqueta el Autor, medio de comunicación y temática.

Para ello busco si está ya esa etiqueta en la base de datos, y sino la añado. Así para el Autor, Medio y la temática.

Luego sacamos la fecha, que en WordPress se guarda en hora normal y en hora GMT. A la hora GMT le restamos una hora, o lo que sea necesario. (línea 283)
Rellenamos los parámetros generales del post para añadirlo a la base de datos. (línea 292)

El post-name o nombre de URL debe ser único, no puede que www.galder.net/blogs-desde-cero/ hicieran referencia a dos artículos ¿no? Por lo que comprobamos que no esté ya ese post_name en la base de datos, y sino vamos añadiéndolo un número hasta que encontremos un post_name no ocupado. (línea 300)

En la línea 326 añadimos el post a la tabla wp_posts, y nos queda vincularlo con una categoría, que en nuestro caso hemos querido todas agruparlas todas bajo la categoría «Web vieja», para no mezclarlos con los contenidos antiguos, y que es la categoría que toma el número 15.

Leemos el ID que el mySQL le ha dado a ese post, y creamos un registro en la tabla wp_post2cat para vincular la categoría con ese post. (Línea 334)

Ya tenemos el ID del post, así que creamos para cada etiqueta un registro vinculando el post con esa etiqueta en la tabla wp_post2tag (Tabla del Ultimate Tag Warrior). (Línea 342)

Technorati Tags: , ,

3 pensamientos en “Migrar a WordPress

  1. Pingback: FrikiBlogs! Recopilando lo mejor de la web. » Migrar a Wordpress

  2. Pingback: Probando el Wordpress 2.3 » galder.net

  3. Pingback: Migrar de Microsoft Access a MySQL » galder.net

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *