Paso Previo: Tema
Crear un tema nuevo para WordPress que se parezca lo máximo posible al de Drupal. Se trata de uno de los pasos más laboriosos ya que el sistema de plantillas de ambos gestores de contenidos no se parece demasiado.
· Este paso seguramente implicará instalar WordPress en el ordenador para poder hacer pruebas rápidas durante la elaboración de este.
· Añadir al tema código de seguimiento de Google Analytics y/o otras páginas.
· Si se han de añadir imágenes o enlaces relativos a la ruta del tema se puede usar el siguiente fragmento:
<?php bloginfo('template_directory'); ?>
Una vez completado el paso 0 , se puede proceder a hacer
Paso 1: Copia de seguridad de la base de datos
Hacer copia de seguridad de la base de datos de Drupal. Antes de proseguir es muy importante poner Drupal en “Modo mantenimiento” para evitar que otros visitantes dejen comentarios en la web mientras hacemos el backup.
Paso 2: Copia de seguridad de los archivos
Hacer copia de seguridad de los archivos alojados por Drupal, especialmente de los siguientes:
· temas personalizados
· plugins o como mínimo anotar el nombre
· archivos subidos: por ejemplo imágenes de los artículos, etc.
Paso 3: Preparar Base de Datos
Crear una base de datos para WordPress, así como un usuario para acceder a ésta, en en MySQL. Hecho mediante el interfaz de gestión de mi hosting.
Paso 4: Instalar WordPress
4.1. Descargar WordPress en español de http://es.wordpress.org/
wget http://es.wordpress.org/wordpress-3.0-es_ES.tar.gz
4.2. Descomprimir en el directorio apropiado
tar -xzvf wordpress-3.0-es_ES.tar.gz
4.3. Renombrar el archivo de configuración general de WordPress suministrado como ejemplo al de configuración de verdad.
mv wp-config-sample.php wp-config.php
4.4. Editar el archivo wp-config.php para adaptarlo a nuestra configuración de base de datos. En particular hemos de modificar las siguientes líneas:
define('DB_NAME', 'nombredetubasededatos');
define('DB_USER', 'usuarioconaccesoalabasededatosmysql');
define('DB_PASSWORD', 'passwordanteriorusuario');
define('DB_HOST', 'nombreservidor');
· En mi caso no me interesa guardar todas las revisiones de un artículo por lo que también he añadido la siguiente línea:
define('WP_POST_REVISIONS', false);
· Y aprovecho para definir la frecuencia (en segundos) de autoguardado de artículos que están editandose, para ello añado la siguiente línea:
define('AUTOSAVE_INTERVAL', 60);
4.5. Cargar en el navegador la dirección http://tudominio.com/wp-admin/install.php para que WordPress inicie
Paso 5: Instalar el plugin WP Maintenance Mode
5.1. Buscar “WP Maintenance Mode”
5.2. Hacer click en “Instalar ahora”
5.3. Configurarlo y activarlo para que los visitantes no vean los trabajos que se van realizando.
Paso 6: Configurar WordPress
6.1. Copiar tema personalizado en el directorio wp-content/themes
6.2. Activar tema personalizado “Kilian Blog” en el menú Apariencia -> Temas
6.3. Añadir Widgets a la barra lateral en el menú Apariencia -> Widgets. En mi caso:
· Buscar
· Archivos
· Menu personalizado (para “Mis Proyectos)
· Enlaces
· Texto – Música Favorita
6.4. Configurar enlaces permanentes en el menú Ajustes -> Enlaces permanentes. En mi caso, para manetener los mismos enlaces que usaba en Drupal, usaré la siguiente estructura personalizada:
contenido/%postname%
6.5. Configurar el resto de opciones al gusto (formato fecha, etc.)
6.6. Activar Protocolo de publicación Atom y XML_RPC en Ajustes -> Escritura para poder publicar desde herramientas de terceros (Microsoft Word 2007, Windows Live Writer)…
Paso 7: Migrar los datos
NOTA: Algunas de
7.1. Abrir MySQL
7.2. Vaciar todos los comentarios y artículos de WordPress
TRUNCATE TABLE wp_comments;
TRUNCATE TABLE wp_postmeta;
TRUNCATE TABLE wp_posts;
TRUNCATE TABLE wp_term_relationships;
TRUNCATE TABLE wp_term_taxonomy;
TRUNCATE TABLE wp_terms;
7.3. Copiar todos los artículos de la antigua base de datos (drupal) a la nueva (wordpress):
INSERT INTO
wp_posts (id, post_date, post_date_gmt, post_content, post_title,
post_excerpt, post_name, post_type, post_modified, post_modified_gmt,
post_author)
SELECT DISTINCT
n.nid, FROM_UNIXTIME(created),
FROM_UNIXTIME(created-7200), body, n.title, teaser, LOWER(n.title),
(CASE n.type
WHEN 'story' THEN 'post'
WHEN 'blog' THEN 'post'
ELSE n.type
END) AS type,
FROM_UNIXTIME(changed) ,
FROM_UNIXTIME(changed-7200) ,
1
FROM drupal.node n, drupal.node_revisions r
WHERE n.vid = r.vid
7.4. Actualizar los enlaces permanentes para que sean iguales que los de Drupal:
UPDATE wp_posts, drupal.url_alias as d
SET post_name = TRIM(LEADING 'contenido/' FROM d.dst)
WHERE d.src LIKE 'node/%'
AND NOT d.src LIKE '%/feed'
AND wp_posts.Id=(TRIM(LEADING 'node/' FROM d.src))
7.4. Importar todos los comentarios:
INSERT INTO wp_comments (comment_post_ID, comment_date,
comment_content, comment_parent, comment_author,
comment_author_email, comment_author_url, comment_approved)
SELECT nid, FROM_UNIXTIME(timestamp), comment, thread,
name, mail, homepage,
(case STATUS WHEN 0 THEN 1 ELSE 0 END)
FROM drupal.comments
7.5. Actualizar conteo de comentarios en los posts
UPDATE wp_posts
SET comment_count = (SELECT COUNT(comment_post_id)
FROM wp_comments
WHERE wp_posts.id = wp_comments.comment_post_id);
Paso 8: Menú “Mis Proyectos”
Para simular el menú “Mis Proyectos”, usaremos los posts de tipo “Página” que ya se habrán importado en el paso anterior.
8.1. Deshabilitamos la posibilidad de agregar comentarios en las entradas de tipo “Página” ejecutando la siguiente consulta SQL:
UPDATE wp_posts SET ping_status='closed', comment_status='closed' WHERE post_type='page'
8.2. Apariencia –> Menús –> Crear menú –> “Mis proyectos”
8.3. Añadir páginas correspondientes a mis proyectos al menú
8.4. Apariencia –> Widgets –> Asociar menú creado al widget “Menú personalizado” creado anteriormente
Paso 9: Formulario de contacto
9.1. Instalar plugin “Fast and Secure Contact Form for WordPress” de la misma forma que se hizo para el plugin “WP Maintenance Mode”.
9.2. Activar el plugin
9.3. Configurar el plugin
9.4. Crear una nueva página desde el menú Páginas–>Añadir nuevo con este contenido:
si-contact-form form='1' (rodeado de corchetes [ y ])
9.5. Añadir un nuevo “Menú Personalizado” llamado “Contactar” que incluya esta página.
Paso 10: Categorías/Taxonomía
Aunque se puede automatizar la migración de categorías/taxonomías, he preferido hacer este proceso manualmente para reorganizar y eliminar algunas no usadas.
Paso 11: Enlaces de amigos
Añadir enlaces mediante
Paso 12: Imagenes existentes
Copiar/Mover las imágenes del directorio de Drupal al de WordPress. Al mantener exactamente la misma estructura no hará falta editar los artículos para actualizar las rutas.
1 comentario:
Para los que preferís ejecutar un programa en lugar de interactuar directamente con la base de datos, un programa Java open source está disponible aquí http://modeling-languages.com/migrating-drupal-6-to-wordpress-3/
Y los no expertos pueden dejar que http://wordpressdrupal.com haga el trabajo por ellos!
Publicar un comentario